qt5: move qt5 modules into its own sub-directory
authorMirko Vogt <[email protected]>
Mon, 5 May 2025 13:41:52 +0000 (13:41 +0000)
committerMirko Vogt <[email protected]>
Thu, 22 May 2025 10:58:15 +0000 (10:58 +0000)
28 files changed:
frameworks/qt5/qt5base/Makefile [new file with mode: 0644]
frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf [new file with mode: 0644]
frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h [new file with mode: 0644]
frameworks/qt5/qt5base/files/qmake.mk [new file with mode: 0644]
frameworks/qt5/qt5base/patches/000-fix-gnuiconv-test.patch [new file with mode: 0644]
frameworks/qt5/qt5graphicaleffects/Makefile [new file with mode: 0644]
frameworks/qt5/qt5quick2-2d-sw-renderer-GLstubs/Makefile [new file with mode: 0644]
frameworks/qt5/qt5quick2-controls2/Makefile [new file with mode: 0644]
frameworks/qt5/qt5quick2/Makefile [new file with mode: 0644]
frameworks/qt5/qt5script/Makefile [new file with mode: 0644]
frameworks/qt5/qt5tools/Makefile [new file with mode: 0644]
frameworks/qt5/qt5tools/patches/000-enable-kmap2qmap.patch [new file with mode: 0644]
frameworks/qt5/qt5tools/patches/001-add-further-keys.patch [new file with mode: 0644]
frameworks/qt5/qt5translations/Makefile [new file with mode: 0644]
frameworks/qt5base/Makefile [deleted file]
frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf [deleted file]
frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h [deleted file]
frameworks/qt5base/files/qmake.mk [deleted file]
frameworks/qt5base/patches/000-fix-gnuiconv-test.patch [deleted file]
frameworks/qt5graphicaleffects/Makefile [deleted file]
frameworks/qt5quick2-2d-sw-renderer-GLstubs/Makefile [deleted file]
frameworks/qt5quick2-controls2/Makefile [deleted file]
frameworks/qt5quick2/Makefile [deleted file]
frameworks/qt5script/Makefile [deleted file]
frameworks/qt5tools/Makefile [deleted file]
frameworks/qt5tools/patches/000-enable-kmap2qmap.patch [deleted file]
frameworks/qt5tools/patches/001-add-further-keys.patch [deleted file]
frameworks/qt5translations/Makefile [deleted file]

diff --git a/frameworks/qt5/qt5base/Makefile b/frameworks/qt5/qt5base/Makefile
new file mode 100644 (file)
index 0000000..a4f7b31
--- /dev/null
@@ -0,0 +1,683 @@
+#
+# Copyright (C) 2020 OpenWrt.org
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+# TODO / known bugs:
+# - plugins don't work when sstrip is used for stripping
+# - no X11/wayland/xcb/kms support so far - primary target is linuxfb
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5base
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5
+
+PKG_SYS_NAME:=qtbase-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+HOST_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+PKG_BUILD_FLAGS:=no-mips16
+# Yes, the host build depends on the target build. This is not a mistake!
+# The target build provides the (target specific) qmake.mk file which
+# is also used for host builds.
+# Host projects depend on qt5base/host which however don't build
+# if qt5base didn't install the qmake.mk file before.
+# Benefit of the target build providing qmake.mk instead of the host build
+# is that the host build really only needs to be built, if there're targets
+# which actually depend on it. At the time of this writing, only qt5tools
+# makes use of the host build.
+HOST_BUILD_DEPENDS:=qt5base
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/nls.mk
+include ./files/qmake.mk
+
+PKG_CONFIG_DEPENDS:= \
+       CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \
+       CONFIG_PACKAGE_qt5base-network \
+       CONFIG_PACKAGE_qt5base-gui \
+       CONFIG_PACKAGE_qt5base-gl \
+       CONFIG_PACKAGE_qt5base-widgets \
+       CONFIG_PACKAGE_qt5base-examples \
+       CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \
+       CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \
+       CONFIG_PACKAGE_qt5base-plugin-input-libinput \
+#      CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
+#      CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \
+#      CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \
+
+# Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does
+# not work, because of QT''s internal elf parser, see
+# https://bugreports.qt.io/browse/QTBUG-52567
+# Use the code from the gcc package to use strip instaed.
+ifneq ($(CONFIG_USE_SSTRIP),)
+  STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
+  RSTRIP:= \
+    export CROSS="$(TARGET_CROSS)" \
+               $(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
+               $(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
+    NM="$(TARGET_CROSS)nm" \
+    STRIP="$(STRIP)" \
+    STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
+    $(SCRIPT_DIR)/rstrip.sh
+endif
+
+define Package/qt5base/Default
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=Qt5base
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+endef
+
+# define Package/qt5base
+#   $(call Package/qt5base/Default)
+#   DEPENDS:=
+#   MENU:=1
+# endef
+
+define Package/qt5base-concurrent
+  $(call Package/qt5base/Default)
+  TITLE+=concurrent
+  DEPENDS+=+qt5base-core
+endef
+
+define Package/qt5base-gl
+  $(call Package/qt5base/Default)
+  TITLE+=gl
+  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets @BROKEN
+endef
+
+define Package/qt5base-core
+  $(call Package/qt5base/Default)
+  TITLE+=core
+  DEPENDS+=+libpthread +zlib +libzstd +libpcre2-16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) +PACKAGE_icu:icu #FIXME: do not include ICONV_DEPENDS if ICU is selected (though, that's only an issue when using GNU iconv)
+endef
+
+define Package/qt5base-gui
+  $(call Package/qt5base/Default)
+  TITLE+=gui
+  DEPENDS+=+qt5base-core +libpng +fontconfig +libfreetype
+endef
+
+define Package/qt5base-network
+  $(call Package/qt5base/Default)
+  TITLE+=network
+  DEPENDS+=+qt5base-core +libopenssl
+endef
+
+# seems to be only present as static lib
+# define Package/qt5base-paltformSupport
+#   $(call Package/qt5base/Default)
+#   DEPENDS+=
+# endef
+
+define Package/qt5base-printSupport
+  $(call Package/qt5base/Default)
+  TITLE+=print support
+  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets
+endef
+
+define Package/qt5base-sql
+  $(call Package/qt5base/Default)
+  TITLE+=sql
+  DEPENDS+=+qt5base-core
+endef
+
+define Package/qt5base-test
+  $(call Package/qt5base/Default)
+  TITLE+=test
+  DEPENDS+=+qt5base-core
+endef
+
+define Package/qt5base-widgets
+  $(call Package/qt5base/Default)
+  TITLE+=widgets
+  DEPENDS+=+qt5base-core +qt5base-gui
+endef
+
+define Package/qt5base-xml
+  $(call Package/qt5base/Default)
+  TITLE+=xml
+  DEPENDS+=+qt5base-core
+endef
+
+#### plugins
+
+####### bearer
+
+define Package/qt5base-plugin-bearer-generic
+  $(call Package/qt5base/Default)
+TITLE+=bearer (plugin)
+  DEPENDS+=+qt5base-core +qt5base-network
+endef
+
+####### generic / input
+
+define Package/qt5base-plugin-input-libinput
+  $(call Package/qt5base/Default)
+  TITLE+=libinput (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libinput
+endef
+
+define Package/qt5base-plugin-input-evdevkeyboard
+  $(call Package/qt5base/Default)
+  TITLE+=evdev keyboard (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+define Package/qt5base-plugin-input-evdevmouse
+  $(call Package/qt5base/Default)
+  TITLE+=evdev mouse (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+define Package/qt5base-plugin-input-evdevtablet
+  $(call Package/qt5base/Default)
+  TITLE+=evdev tablet (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+define Package/qt5base-plugin-input-evdevtouch
+  $(call Package/qt5base/Default)
+  TITLE+=evdev touch (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+####### imageformats
+
+#define Package/qt5base-plugin-imageformats-gif
+#  $(call Package/qt5base/Default)
+#TITLE+=imageformat gif (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-gui
+#endef
+
+define Package/qt5base-plugin-imageformats-ico
+  $(call Package/qt5base/Default)
+  TITLE+=imageformat ico (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui
+endef
+
+define Package/qt5base-plugin-imageformats-jpeg
+  $(call Package/qt5base/Default)
+  TITLE+=imageformat jpeg (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libjpeg
+endef
+
+#define Package/qt5base-plugin-imageformats-png
+#  $(call Package/qt5base/Default)
+#  TITLE+=imageformat png (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-gui +libpng
+#endef
+
+####### platforms
+
+#define Package/qt5base-plugin-platforms-eglfs
+#  $(call Package/qt5base/Default)
+#  TITLE+=platform eglfs (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
+#endef
+
+#define Package/qt5base-plugin-platforms-minimalegl
+#  $(call Package/qt5base/Default)
+#  TITLE+=platform minimalegl (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
+#endef
+
+define Package/qt5base-plugin-platforms-linuxfb
+  $(call Package/qt5base/Default)
+  TITLE+=platform linuxfb (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+define Package/qt5base-plugin-platforms-minimal
+  $(call Package/qt5base/Default)
+  TITLE+=platform minimal (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
+endef
+
+define Package/qt5base-plugin-platforms-offscreen
+  $(call Package/qt5base/Default)
+  TITLE+=platform offscreen (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
+endef
+
+define Package/qt5base-plugin-platforms-vnc
+  $(call Package/qt5base/Default)
+  TITLE+=platform vnc (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-network +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
+endef
+
+
+
+###### sql
+
+#define Package/qt5base-plugin-sqldrivers-sqlite
+#  $(call Package/qt5base/Default)
+#  TITLE+=sqldriver sqlite (plugin)
+#  DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3
+#endef
+
+define Package/qt5base-examples
+  $(call Package/qt5base/Default)
+  TITLE+=examples
+  DEPENDS+=\
+               +qt5base-core \
+               +qt5base-gui \
+               +qt5base-widgets \
+               +qt5base-network \
+               +qt5base-sql \
+               +qt5base-xml \
+               +qt5base-printSupport \
+               +qt5base-concurrent \
+               +qt5base-gl
+endef
+
+define Build/Prepare
+       $(call Build/Prepare/Default)
+       $(CP) \
+               ./files/mkspecs/linux-openwrt-g++ \
+               $(PKG_BUILD_DIR)/mkspecs/
+endef
+
+# TARGET_CFLAGS += \
+#        -I$(STAGING_DIR)/usr/include/freetype2 \
+#        -I$(STAGING_DIR)/usr/include/libdrm
+
+define Build/Configure
+       # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
+       # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
+       # hence we use the TARGET_* nomenclature.
+       # 
+       # NOTES:
+       #  - icu support currently depends on selection of icu package which is not ideal, since unpredictable.
+       #  - icu support overrides iconv support
+       ( cd $(PKG_BUILD_DIR) ; \
+               TARGET_CROSS="$(TARGET_CROSS)" \
+               TARGET_CFLAGS="$(TARGET_CFLAGS)" \
+               TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(TARGET_CXXFLAGS)" \
+               TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
+               PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
+               ./configure \
+                       --prefix=$(QT_INSTALL_PREFIX) \
+                       --extprefix=$(QT_EXTPREFIX) \
+                       --hostprefix=$(QT_HOST_PREFIX) \
+                       --gcc-sysroot=no \
+                       --bindir=$(QT_INSTALL_BINS) \
+                       --headerdir=$(QT_INSTALL_HEADERS) \
+                       --libdir=$(QT_INSTALL_LIBS) \
+                       --archdatadir=$(QT_INSTALL_ARCHDATA) \
+                       --plugindir=$(QT_INSTALL_PLUGINS) \
+                       --libexecdir=$(QT_INSTALL_LIBEXECS) \
+                       --importdir=$(QT_INSTALL_IMPORTS) \
+                       --qmldir=$(QT_INSTALL_QML) \
+                       --datadir=$(QT_INSTALL_DATA) \
+                       --docdir=$(QT_INSTALL_DOCS) \
+                       --translationdir=$(QT_INSTALL_TRANSLATIONS) \
+                       --sysconfdir=$(QT_INSTALL_CONFIGURATION) \
+                       --examplesdir=$(QT_INSTALL_EXAMPLES) \
+                       --testsdir=$(QT_INSTALL_TESTS) \
+                       --hostbindir=$(QT_HOST_BINS) \
+                       --hostlibdir=$(QT_HOST_LIBS) \
+                       --hostdatadir=$(QT_HOST_DATA) \
+                       --verbose=yes \
+                       --opensource \
+                       --confirm-license \
+                       --release=yes \
+                       --optimized-tools=no \
+                       --optimize-size=no \
+                       --strip=no \
+                       --shared=yes \
+                       --framework=no \
+                       --xplatform=linux-openwrt-g++ \
+                       --reduce-exports=no \
+                       --reduce-relocations=no \
+                       --pch=no \
+                       --ltcg=no \
+                       --use-gold-linker=no \
+                       --warnings-are-errors=no \
+                       --pkg-config=yes \
+                       --compile-examples=$(if $(CONFIG_PACKAGE_qt5base-examples),yes,no) \
+                       $(if $(CONFIG_PACKAGE_qt5base-examples),,--nomake=examples) \
+                       --gui=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
+                       --widgets=$(if $(CONFIG_PACKAGE_qt5base-widgets),yes,no) \
+                       --dbus=no \
+                       --accessibility=yes \
+                       --doubleconversion=system \
+                       --glib=no \
+                       --eventfd=no \
+                       --inotify=no \
+                       --iconv=$(if $(CONFIG_BUILD_NLS),$(if $(CONFIG_LIBC_USE_GLIBC)$(CONFIG_LIBC_USE_MUSL),posix)$(if $(CONFIG_LIBC_USE_UCLIBC),gnu),no) \
+                       --icu=$(if $(CONFIG_PACKAGE_icu),yes,no) \
+                       --pcre=system \
+                       --zlib=system \
+                       --journald=no \
+                       --syslog=no \
+                       --ssl=$(if $(CONFIG_PACKAGE_qt5base-network),yes,no) \
+                       --openssl-linked$(if $(CONFIG_PACKAGE_qt5base-network),,=no) \
+                       --libproxy=no \
+                       --system-proxies=yes \
+                       --cups=no \
+                       --fontconfig=yes \
+                       --freetype=system \
+                       --harfbuzz=no \
+                       --gtk=no \
+                       --opengl=no \
+                       --opengles3=no \
+                       --egl=no \
+                       --xcb-xlib=no \
+                       --qpa=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),linuxfb,) \
+                       --directfb=no \
+                       --eglfs=no \
+                       --gbm=no \
+                       --linuxfb=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),yes,no) \
+                       --xcb=no \
+                       \
+                       --libudev=yes \
+                       --evdev=yes \
+                       --libinput=$(if $(CONFIG_PACKAGE_qt5base-plugin-input-libinput),yes,no) \
+                       --mtdev=no \
+                       --tslib=no \
+                       --bundled-xcb-xinput=no \
+                       --xkbcommon=no \
+                       --gif=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
+                       --ico=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),yes,no) \
+                       --libjpeg=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),system,no) \
+                       --libpng=system \
+                       --sql-db2=no \
+                       --sql-ibase=no \
+                       --sql-mysql=no \
+                       --sql-oci=no \
+                       --sql-odbc=no \
+                       --sql-psql=no \
+                       --sql-sqlite=no \
+                       --sql-sqlite2=no \
+                       --sql-tds=no \
+                       --sqlite=no \
+       )
+endef
+
+
+define Host/Configure
+       # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
+       # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
+       # hence we use the TARGET_* nomenclature.
+       ( cd $(HOST_BUILD_DIR) ; \
+               TARGET_CFLAGS="$(HOST_CFLAGS)" \
+               TARGET_CXXFLAGS="$(HOST_CFLAGS) $(HOST_CXXFLAGS)" \
+               TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
+               ./configure \
+                       --prefix=$(STAGING_DIR_HOST) \
+                       --hostprefix=$(STAGING_DIR_HOST) \
+                       --hostdatadir=$(STAGING_DIR_HOST)/share \
+                       --datadir=$(STAGING_DIR_HOST)/share \
+                       --archdatadir=$(STAGING_DIR_HOST)/lib \
+                       --gcc-sysroot=no \
+                       --verbose=yes \
+                       --opensource \
+                       --confirm-license \
+                       --release=yes \
+                       --optimized-tools=no \
+                       --optimize-size=no \
+                       --strip=no \
+                       --shared=yes \
+                       --framework=no \
+                       --reduce-exports=no \
+                       --reduce-relocations=no \
+                       --pch=no \
+                       --ltcg=no \
+                       --use-gold-linker=no \
+                       --warnings-are-errors=no \
+                       --pkg-config=yes \
+                       --compile-examples=no \
+                       --make=libs \
+                       --nomake=tools \
+                       --nomake=examples \
+                       --gui=yes \
+                       --widgets=no \
+                       --dbus=no \
+                       --accessibility=no \
+                       --doubleconversion=qt \
+                       --glib=no \
+                       --eventfd=no \
+                       --inotify=no \
+                       --iconv=no \
+                       --icu=no \
+                       --pcre=qt \
+                       --zlib=qt \
+                       --journald=no \
+                       --syslog=no \
+                       --ssl=no \
+                       --libproxy=no \
+                       --system-proxies=no \
+                       --cups=no \
+                       --fontconfig=no \
+                       --freetype=qt \
+                       --harfbuzz=no \
+                       --gtk=no \
+                       --opengl=no \
+                       --opengles3=no \
+                       --egl=no \
+                       --xcb-xlib=no \
+                       --directfb=no \
+                       --eglfs=no \
+                       --gbm=no \
+                       --linuxfb=no \
+                       --xcb=no \
+                       \
+                       --libudev=no \
+                       --evdev=no \
+                       --libinput=no \
+                       --mtdev=no \
+                       --tslib=no \
+                       --bundled-xcb-xinput=no \
+                       --xkbcommon=no \
+                       --gif=no \
+                       --ico=no \
+                       --libjpeg=no \
+                       --libpng=no \
+                       --sql-db2=no \
+                       --sql-ibase=no \
+                       --sql-mysql=no \
+                       --sql-oci=no \
+                       --sql-odbc=no \
+                       --sql-psql=no \
+                       --sql-sqlite=no \
+                       --sql-sqlite2=no \
+                       --sql-tds=no \
+                       --sqlite=no \
+       )
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) \
+               $(STAGING_DIR)/host/mk
+
+       $(CP) \
+               ./files/qmake.mk \
+               $(STAGING_DIR)/host/mk/
+
+       $(call Build/Install/HostFiles,$(1))
+       $(call Build/Install/Headers,$(1))
+       $(call Build/Install/Libs,$(1),*)
+endef
+
+define Host/Install
+       $(call Host/Install/Default)
+
+       $(INSTALL_DIR) \
+         $(STAGING_DIR_HOST)/bin \
+         $(STAGING_DIR_HOST)/lib \
+         $(STAGING_DIR_HOST)/include \
+         $(STAGING_DIR_HOST)/share
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/lib/* \
+         $(STAGING_DIR_HOST)/lib/
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/include/* \
+         $(STAGING_DIR_HOST)/include/
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/share/* \
+         $(STAGING_DIR_HOST)/share/
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/bin/* \
+         $(STAGING_DIR_HOST)/bin/
+endef
+
+define Package/qt5base-concurrent/install
+       $(call Build/Install/Libs,$(1),libQt5Concurrent)
+endef
+
+define Package/qt5base-core/install
+       $(call Build/Install/Libs,$(1),libQt5Core)
+endef
+
+define Package/qt5base-gl/install
+       $(call Build/Install/Libs,$(1),libQt5OpenGL)
+endef
+
+define Package/qt5base-gui/install
+       $(call Build/Install/Libs,$(1),libQt5Gui)
+endef
+
+define Package/qt5base-network/install
+       $(call Build/Install/Libs,$(1),libQt5Network)
+endef
+
+define Package/qt5base-printSupport/install
+       $(call Build/Install/Libs,$(1),libQt5PrintSupport)
+endef
+
+define Package/qt5base-sql/install
+       $(call Build/Install/Libs,$(1),libQt5Sql)
+endef
+
+define Package/qt5base-test/install
+       $(call Build/Install/Libs,$(1),libQt5Test)
+endef
+
+define Package/qt5base-widgets/install
+       $(call Build/Install/Libs,$(1),libQt5Widgets)
+endef
+
+define Package/qt5base-xml/install
+       $(call Build/Install/Libs,$(1),libQt5Xml)
+endef
+
+define Package/qt5base-plugin-bearer-generic/install
+       $(call Build/Install/Plugins,$(1),bearer,libqgenericbearer)
+endef
+
+define Package/qt5base-plugin-input-libinput/install
+       $(call Build/Install/Plugins,$(1),generic,libqlibinputplugin)
+endef
+
+define Package/qt5base-plugin-input-evdevkeyboard/install
+       $(call Build/Install/Plugins,$(1),generic,libqevdevkeyboardplugin)
+endef
+
+define Package/qt5base-plugin-input-evdevmouse/install
+       $(call Build/Install/Plugins,$(1),generic,libqevdevmouseplugin)
+endef
+
+define Package/qt5base-plugin-input-evdevtablet/install
+       $(call Build/Install/Plugins,$(1),generic,libqevdevtabletplugin)
+endef
+
+define Package/qt5base-plugin-input-evdevtouch/install
+       $(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin)
+endef
+
+#define Package/qt5base-plugin-imageformats-gif/install
+#      $(call Build/Install/Plugins,$(1),imageformats,libqgif)
+#endef
+
+define Package/qt5base-plugin-imageformats-ico/install
+       $(call Build/Install/Plugins,$(1),imageformats,libqico)
+endef
+
+define Package/qt5base-plugin-imageformats-jpeg/install
+       $(call Build/Install/Plugins,$(1),imageformats,libqjpeg)
+endef
+
+#define Package/qt5base-plugin-imageformats-png/install
+#      $(call Build/Install/Plugins,$(1),imageformats,libqpng)
+#endef
+
+define Package/qt5base-plugin-platforms-linuxfb/install
+       $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
+endef
+
+define Package/qt5base-plugin-platforms-vnc/install
+       $(call Build/Install/Plugins,$(1),platforms,libqvnc)
+endef
+
+#define Package/qt5base-plugin-platforms-eglfs/install
+#      $(call Build/Install/Plugins,$(1),platforms,libqeglfs)
+#endef
+
+#define Package/qt5base-plugin-platforms-minimalegl/install
+#      $(call Build/Install/Plugins,$(1),platforms,libqminimalegl)
+#endef
+
+define Package/qt5base-plugin-platforms-minimal/install
+       $(call Build/Install/Plugins,$(1),platforms,libqminimal)
+endef
+
+define Package/qt5base-plugin-platforms-offscreen/install
+       $(call Build/Install/Plugins,$(1),platforms,libqoffscreen)
+endef
+
+#define Package/qt5base-plugin-sqldrivers-sqlite/install
+#      $(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite)
+#endef
+
+define Package/qt5base-examples/install
+       $(call Build/Install/Examples,$(1))
+endef
+
+# $(eval $(call BuildPackage,qt5base))
+$(eval $(call BuildPackage,qt5base-concurrent))
+$(eval $(call BuildPackage,qt5base-core))
+$(eval $(call BuildPackage,qt5base-gui))
+$(eval $(call BuildPackage,qt5base-gl))
+$(eval $(call BuildPackage,qt5base-network))
+$(eval $(call BuildPackage,qt5base-printSupport))
+$(eval $(call BuildPackage,qt5base-sql))
+$(eval $(call BuildPackage,qt5base-test))
+$(eval $(call BuildPackage,qt5base-widgets))
+$(eval $(call BuildPackage,qt5base-xml))
+$(eval $(call BuildPackage,qt5base-plugin-bearer-generic))
+$(eval $(call BuildPackage,qt5base-plugin-input-libinput))
+$(eval $(call BuildPackage,qt5base-plugin-input-evdevkeyboard))
+$(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse))
+$(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet))
+$(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch))
+#$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif))
+$(eval $(call BuildPackage,qt5base-plugin-imageformats-ico))
+$(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg))
+#$(eval $(call BuildPackage,qt5base-plugin-imageformats-png))
+$(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb))
+#$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs))
+#$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl))
+$(eval $(call BuildPackage,qt5base-plugin-platforms-minimal))
+$(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen))
+$(eval $(call BuildPackage,qt5base-plugin-platforms-vnc))
+#$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite))
+$(eval $(call BuildPackage,qt5base-examples))
+$(eval $(call HostBuild))
diff --git a/frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf b/frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf
new file mode 100644 (file)
index 0000000..eff0868
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# qmake configuration for building with linux-openwrt-g++
+#
+
+MAKEFILE_GENERATOR      = UNIX
+CONFIG                 += incremental
+QMAKE_INCREMENTAL_STYLE = sublib
+
+include(../common/linux.conf)
+include(../common/gcc-base-unix.conf)
+include(../common/g++-unix.conf)
+
+
+# modifications to gcc-base.conf (included by gcc-base-unix.conf)
+QMAKE_CFLAGS           += $$(TARGET_CFLAGS)
+QMAKE_CXXFLAGS         += $$(TARGET_CXXFLAGS)
+QMAKE_LFLAGS           += $$(TARGET_LDFLAGS)
+
+# modifications to g++.conf
+QMAKE_CC                = $$(TARGET_CROSS)gcc
+QMAKE_CXX               = $$(TARGET_CROSS)g++
+
+QMAKE_LINK_C            = $$QMAKE_CC
+QMAKE_LINK_C_SHLIB      = $$QMAKE_CC
+QMAKE_LINK              = $$QMAKE_CXX
+QMAKE_LINK_SHLIB        = $$QMAKE_CXX
+
+
+# modifications to linux.conf
+QMAKE_AR                = $$(TARGET_CROSS)ar cqs
+QMAKE_RANLIB            = $$(TARGET_CROSS)ranlib # QMAKE_RANLIB is set to NULL in linux.conf. Why? Not needed anymore? Set it anyway, just in case...
+QMAKE_OBJCOPY           = $$(TARGET_CROSS)objcopy
+QMAKE_NM                = $$(TARGET_CROSS)nm # whole qt5 project doesn't use $QMAKE_NM - wonder why it's defined in linux.conf at all. However better set it to ours than keep it being set to the host's version, just in case...
+QMAKE_STRIP             = # not used, since -no-strip is passed. Let's OpenWrt do the stripping
+
+
+load(qt_config)
diff --git a/frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h b/frameworks/qt5/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h
new file mode 100644 (file)
index 0000000..9cfed53
--- /dev/null
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the qmake spec of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "../linux-g++/qplatformdefs.h"
diff --git a/frameworks/qt5/qt5base/files/qmake.mk b/frameworks/qt5/qt5base/files/qmake.mk
new file mode 100644 (file)
index 0000000..34903b7
--- /dev/null
@@ -0,0 +1,195 @@
+#
+# Copyright (C) 2020 OpenWrt.org
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+# qmake - oh my.. qmake is supposed to generate Makefiles suitable for cross-compiling
+# however fails itself hard being used in a cross compiling toolchain in any sane way.
+# 
+# There are the QT_INSTALL_* variables - which get set via Qt's configure options,
+# containing paths which become hardcoded into the qmake binary.
+# Those paths are supposed to refer to the target system, however are also used for
+# include and linker paths.
+# Hence, setting QT_INSTALL_PREFIX=/usr would result in -I/usr/include,
+# -L/usr/lib, etc., referencing the host headers and libraries.
+# The QT_SYSROOT variable looks most promising for distinguishing between
+# host and target specific paths, however it fails hard and is totally undocumented.
+# The extprefix variable tries to cover the situation, however actually just prepends
+# its path to the QT_INSTALL_* variables - basically cosmetics.
+# 
+# The QT_HOST_* variables are used for host tools, libraries, mkspecs and its data.
+# 
+# As a consequence we set QT_INSTALL_* and QT_HOST_* to absolute paths, which
+# inevitably results in the following issues:
+# 
+#  - 'make install' results in paths like:
+#    /tmp/install_root/home/cross/openwrt/staging_dir/target-*/usr.
+#    This is workarounded by overriding the PKG_INSTALL_DIR, so the Makefiles don't
+#    have to care about that.
+#  - Once compiled, qmake's location and its requirements (mkspecs, etc.) are fixed,
+#    since its absolute paths were hardcoded. No moving around of the toolchain.
+#  - Those variables might be used for target binaries for some weird reason, so
+#    paths to the host staging_dir would make it to the target, logically leading to
+#    errors.
+#  - Paths might make it into target binaries, thus referencing non-existing
+#    objects on the target platform. Tihs behaviour wasn't observed so far, however 
+#    one might use the QT_INSTALL_* variables for some weird reason during runtime.
+
+# for target builds (STAGING_DIR)
+QT_EXTPREFIX:=$(STAGING_DIR)/$(CONFIGURE_PREFIX)
+QT_SYSROOT:=
+QT_INSTALL_CONFIGURATION:=/etc/qt5
+QT_INSTALL_PREFIX:=$(CONFIGURE_PREFIX)
+QT_INSTALL_LIBS:=$(QT_INSTALL_PREFIX)/lib
+QT_INSTALL_DATA:=$(QT_INSTALL_PREFIX)/share/qt5
+QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include
+QT_INSTALL_BINS:=$(QT_INSTALL_PREFIX)/bin
+QT_INSTALL_DOCS:=$(QT_INSTALL_DATA)/doc
+QT_INSTALL_TRANSLATIONS:=$(QT_INSTALL_DATA)/translations
+QT_INSTALL_ARCHDATA:=$(QT_INSTALL_LIBS)/qt5
+QT_INSTALL_LIBEXECS:=$(QT_INSTALL_ARCHDATA)
+QT_INSTALL_TESTS:=$(QT_INSTALL_ARCHDATA)/tests
+QT_INSTALL_PLUGINS:=$(QT_INSTALL_ARCHDATA)/plugins
+QT_INSTALL_IMPORTS:=$(QT_INSTALL_ARCHDATA)/imports
+QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml
+QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples
+QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES)
+# for host builds defined in target project files (STAGING_DIR)/host
+QT_HOST_EXTPREFIX:=$(STAGING_DIR)/host
+QT_HOST_PREFIX:=$(QT_HOST_EXTPREFIX)
+QT_HOST_DATA:=$(QT_HOST_PREFIX)/share
+QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin
+QT_HOST_LIBS:=$(QT_HOST_PREFIX)/lib
+
+QMAKE_SPEC:=linux-g++
+QMAKE_XSPEC:=linux-openwrt-g++
+
+PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR)
+PKG_INSTALL_DIR:=$(PKG_INSTALL_DIR_ROOT)/$(STAGING_DIR)
+
+# for target independant host builds (STAGING_DIR_HOST)
+HOST_INSTALL_DIR_ROOT:=$(HOST_INSTALL_DIR)
+HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR_HOST)
+#HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR)
+
+QMAKE_TARGET=$(STAGING_DIR)/host/bin/qmake
+QMAKE_HOST=$(STAGING_DIR_HOST)/bin/qmake
+
+define Build/Configure/Default
+       TARGET_CROSS="$(TARGET_CROSS)" \
+       TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
+       TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
+       TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
+       $(QMAKE_TARGET) \
+               -o $(PKG_BUILD_DIR)/$(MAKE_PATH)/Makefile \
+               $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
+endef
+
+define Host/Configure/Default
+       $(QMAKE_HOST) \
+               -o $(HOST_BUILD_DIR)/$(MAKE_PATH)/Makefile \
+               $(HOST_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
+endef
+
+# We need to pass all qmake (TARGET_*) related variables to $(MAKE) as well, as
+# (generated) Makefiles may invoke qmake once again for creating further Makefiles.
+# Actually we'd also like to pass all other vars (defined in $MAKE_VARS and
+# $MAKE_FLAGS) to also make ordinary non-qmake generated Makefiles calling tool-
+# chain executables like $CC/$CXX/$AR.. work, however this would interfere with
+# qmake generated Makefiles, since they expect variables being set differently.
+# For example qmake generated Makefiles expect $AR to also contain ar's arguments,
+# while ordinary Makefiles don't.
+# Until we find a way to disginguish both kinds of Makefiles, we will neglect
+# ordinary Makefiles calling toolchain executables, however as they might take
+# $CFLAGS/CXXFLAGS into account (e.g. flags as -D*), we pass at least those
+# hoping to not interfere / break something.
+# Mixing qmake generated and ordinary Makfiles - both calling toolchain execut-
+# ables - is probably a very rare case anyway.
+define Build/Compile/Default
+       +TARGET_CROSS="$(TARGET_CROSS)" \
+       TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
+       TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
+       TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
+       CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
+       CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
+       LDFLAGS="$(TARGET_LDFLAGS)" \
+               $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
+                       $(1)
+endef
+
+define Host/Compile/Default
+               $(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
+                       $(1)
+endef
+
+define Build/Install/Default
+       INSTALL_ROOT="$(PKG_INSTALL_DIR_ROOT)" \
+               $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
+                       $(1) install
+endef
+
+define Host/Install/Default
+       INSTALL_ROOT="$(HOST_INSTALL_DIR_ROOT)" \
+               $(MAKE) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
+                       $(1) install
+endef
+
+define Build/Install/HostFiles
+       $(INSTALL_DIR) \
+               $(1)/host
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/host/* \
+               $(1)/host/
+endef
+
+define Build/Install/Headers
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_HEADERS)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_HEADERS)/* \
+               $(1)/$(QT_INSTALL_HEADERS)/
+endef
+
+define Build/Install/Libs
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_LIBS)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_LIBS)/$(2).so* \
+               $(1)/$(QT_INSTALL_LIBS)/
+endef
+
+define Build/Install/Translations
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_TRANSLATIONS)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_TRANSLATIONS)/$(2).qm \
+               $(1)/$(QT_INSTALL_TRANSLATIONS)/
+endef
+
+define Build/Install/Plugins
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_PLUGINS)/$(2)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2)/$(3).so* \
+               $(1)/$(QT_INSTALL_PLUGINS)/$(2)/
+endef
+
+define Build/Install/Examples
+       $(INSTALL_DIR) \
+               $(1)/$(QT_INSTALL_EXAMPLES)
+
+       $(CP) \
+               $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \
+               $(1)/$(QT_INSTALL_EXAMPLES)/
+
+       $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \
+               -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \
+               $(XARGS) $(RM) -vf
+endef
diff --git a/frameworks/qt5/qt5base/patches/000-fix-gnuiconv-test.patch b/frameworks/qt5/qt5base/patches/000-fix-gnuiconv-test.patch
new file mode 100644 (file)
index 0000000..2ec7794
--- /dev/null
@@ -0,0 +1,81 @@
+From e9097ab24832e42df6e16093e5c3b775dbcf2367 Mon Sep 17 00:00:00 2001
+From: Mirko Vogt <[email protected]>
+Date: Fri, 5 Jun 2020 12:46:36 +0000
+Subject: [PATCH] GNU iconv() - at least in OpenWrt - behaves like POSIX
+ iconv()
+
+GNU iconv() had the terrible idea of introducing a build variant for its
+iconv() function, where the second argument can either be a `char **` or
+a `const char **` depending on a macro set under whatever certain
+circumstances at build time, resulting in different function signatures.
+
+Despite those two possible variants, the project only mentions the
+non-const one in their manual page.
+
+Since this didn't seem to be enough trouble for its users, they seem to
+have changed the default variant from `const char **` to `char **` at
+some point, while leaving the manual page as it is, now stating the
+non-default, hence in most cases probably wrong, signature.
+
+Qt assumes GNU iconv() has the nowadays non-default function signature
+(`const char **`), and distiguishes that way from the POSIX one.
+Another issue with Qt and GNU iconv(): While we can easily make the test
+work for GNU iconv with its default iconv()-signature, Qt assumes that if
+the GNU-iconv succeeds, the present version of iconv is POSIX- 
+incompatible - which however isn't true in our case.
+
+However we also can't just use the POSIX iconv test, as the Qt test for
+POSIX iconv fails on GNU iconv for another reason: GNU iconv requires
+explicit linker flags (`-liconv`), which the Qt test for POSIX iconv
+however implicitly drops when the target system is linux.
+
+This was extensively discussed in a Qt bug report:
+https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84708
+
+The only good thing seems to be that Qt's configure script is also buggy 
+and counter-intuitive, resulting in 'gnu' not being accepted as iconv
+variant when using the default single-dash format for specifying
+configure options:
+https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84687
+So most likely there's nobody using Qt with GNU iconv anyway.
+
+This patch is what I came up with being the smallest changeset.
+May it work.
+---
+ src/corelib/codecs/qiconvcodec.cpp | 5 -----
+ src/corelib/configure.json         | 2 +-
+ 2 files changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/src/corelib/codecs/qiconvcodec.cpp b/src/corelib/codecs/qiconvcodec.cpp
+index 9c397279..8d43e6c8 100644
+--- a/src/corelib/codecs/qiconvcodec.cpp
++++ b/src/corelib/codecs/qiconvcodec.cpp
+@@ -180,12 +180,7 @@ QString QIconvCodec::convertToUnicode(const char* chars, int len, ConverterState
+     IconvState *state = *pstate;
+     size_t inBytesLeft = len;
+     // best case assumption, each byte is converted into one UTF-16 character, plus 2 bytes for the BOM
+-#if !QT_CONFIG(posix_libiconv)
+-    // GNU doesn't disagree with POSIX :/
+-    const char *inBytes = chars;
+-#else
+     char *inBytes = const_cast<char *>(chars);
+-#endif
+     QByteArray in;
+     if (remainingCount) {
+diff --git a/src/corelib/configure.json b/src/corelib/configure.json
+index c5e04232..32237bc4 100644
+--- a/src/corelib/configure.json
++++ b/src/corelib/configure.json
+@@ -72,7 +72,7 @@
+             "test": {
+                 "main": [
+                     "iconv_t x = iconv_open(\"\", \"\");",
+-                    "const char *inp;",
++                    "char *inp;",
+                     "char *outp;",
+                     "size_t inbytes, outbytes;",
+                     "iconv(x, &inp, &inbytes, &outp, &outbytes);",
+-- 
+2.20.1
+
diff --git a/frameworks/qt5/qt5graphicaleffects/Makefile b/frameworks/qt5/qt5graphicaleffects/Makefile
new file mode 100644 (file)
index 0000000..cf04a29
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5graphicaleffects
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda
+
+PKG_SYS_NAME:=qtgraphicaleffects-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=qt5base
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5graphicaleffects
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=qt5graphicaleffects
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+  DEPENDS:=+qt5quick2-quick @BROKEN # depends on GL support, but currently we only support software rendering
+endef
+
+define Build/InstallDev
+endef
+
+define Package/qt5graphicaleffects/install
+       $(INSTALL_DIR) \
+         $(1)/usr/lib/qt5/qml/QtGraphicalEffects
+
+       $(CP) \
+         $(PKG_INSTALL_DIR)/usr/lib/qt5/qml/QtGraphicalEffects/* \
+         $(1)/usr/lib/qt5/qml/QtGraphicalEffects/
+endef
+
+$(eval $(call BuildPackage,qt5graphicaleffects))
diff --git a/frameworks/qt5/qt5quick2-2d-sw-renderer-GLstubs/Makefile b/frameworks/qt5/qt5quick2-2d-sw-renderer-GLstubs/Makefile
new file mode 100644 (file)
index 0000000..e0fea17
--- /dev/null
@@ -0,0 +1,80 @@
+#
+# Copyright (C) 2020 OpenWrt.org
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+### This package shares the same code as `qt5quick2-GLstubs`.
+### However unfortunately we can't handle both packages within
+### one Makefile, as it would create a circular dependency:
+###  `qt5base` depends on `qt5quick2-GLstubs`, but
+### `qt5quick2-2d-sw-renderer` depends on `qt5quick2` which
+### depends on `qt5base`.
+### `qt5quick2-2d-sw-renderer` and `qt5quick2-GLstubs` sharing
+### the same Makefile results in `qt5base` depending on `qt5quick2`
+### which is meh.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5quick2-2d-sw-renderer-GLstubs
+PKG_VERSION:=5.7.0
+PKG_RELEASE:=1
+PKG_MD5SUM:=41bfcb5ab6d7a820687c4208beeb7057
+
+PKG_SYS_NAME:=qtdeclarative-render2d-opensource-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/archive/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/qtdeclarative-render2d-opensource-src-$(PKG_VERSION)-GLstubs/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/qt5quick2-2d-sw-renderer-GLstubs
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=Dummy GL stubs
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+endef
+
+TARGET_CFLAGS += \
+  -I../3rdparty/include
+
+define Build/Configure
+endef
+
+define Build/Compile
+       ( cd $(PKG_BUILD_DIR)/tools/opengldummy/src ; \
+         $(TARGET_CC) $(TARGET_CFLAGS) -fPIC -shared -o libEGL.so egl.cpp && \
+         $(TARGET_CC) $(TARGET_CFLAGS) -fPIC -shared -o libGLESv2.so gles2.cpp \
+       )
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) \
+         $(1)/usr/include \
+         $(1)/usr/lib
+
+       $(CP) \
+         $(PKG_BUILD_DIR)/tools/opengldummy/3rdparty/include/* \
+         $(1)/usr/include/
+
+       $(INSTALL_DATA) \
+         $(PKG_BUILD_DIR)/tools/opengldummy/src/lib*.so* \
+         $(1)/usr/lib/
+endef
+
+
+define Package/qt5quick2-2d-sw-renderer-GLstubs/install
+       $(INSTALL_DIR) \
+         $(1)/usr/lib
+
+       $(INSTALL_DATA) \
+         $(PKG_BUILD_DIR)/tools/opengldummy/src/lib*.so* \
+         $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,qt5quick2-2d-sw-renderer-GLstubs))
diff --git a/frameworks/qt5/qt5quick2-controls2/Makefile b/frameworks/qt5/qt5quick2-controls2/Makefile
new file mode 100644 (file)
index 0000000..8fcdcd1
--- /dev/null
@@ -0,0 +1,59 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5quick2-controls2
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f
+
+PKG_SYS_NAME:=qtquickcontrols2-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5quick2-controls2
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=qt5quick2-controls2
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+  DEPENDS:=+qt5quick2-quick
+endef
+
+define Build/InstallDev
+       $(call Build/Install/HostFiles,$(1))
+       $(call Build/Install/Headers,$(1))
+       $(call Build/Install/Libs,$(1),*)
+endef
+
+define Package/qt5quick2-controls2/install
+       $(call Build/Install/Libs,$(1),libQt5QuickTemplates2)
+       $(call Build/Install/Libs,$(1),libQt5QuickControls2)
+
+       $(INSTALL_DIR) \
+         $(1)/usr/lib/qt5/qml/QtQuick
+
+       $(CP) \
+         $(PKG_INSTALL_DIR)/usr/lib/qt5/qml/QtQuick/* \
+         $(1)/usr/lib/qt5/qml/QtQuick/
+endef
+
+define Package/qt5quick2-templates2/install
+       $(call Build/Install/Libs,$(1),libQt5QuickTemplates2)
+endef
+
+$(eval $(call BuildPackage,qt5quick2-controls2))
diff --git a/frameworks/qt5/qt5quick2/Makefile b/frameworks/qt5/qt5quick2/Makefile
new file mode 100644 (file)
index 0000000..4d0cd28
--- /dev/null
@@ -0,0 +1,343 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5quick2
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699
+
+PKG_SYS_NAME:=qtdeclarative-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=qt5base
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5quick2/Default
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=Qt5Quick2
+#  DEPENDS+=qt5quick2
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+endef
+
+# define Package/qt5quick2
+#   $(call Package/qt5quick2/Default)
+#   DEPENDS:=
+#   MENU:=1
+# endef
+
+define Package/qt5quick2-qml
+  $(call Package/qt5quick2/Default)
+  TITLE+=Qml
+  DEPENDS+=+qt5base-network
+endef
+
+define Package/qt5quick2-qml-models
+  $(call Package/qt5quick2/Default)
+  TITLE+=QmlModels
+  DEPENDS+=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-qml-worker-script
+  $(call Package/qt5quick2/Default)
+  TITLE+=QmlWorkerScript
+  DEPENDS+=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-quick
+  $(call Package/qt5quick2/Default)
+  TITLE+=Quick
+  DEPENDS+=+qt5base-gui +qt5quick2-qml-models
+endef
+
+define Package/qt5quick2-quick-test
+  $(call Package/qt5quick2/Default)
+  TITLE+=QuickTest
+  DEPENDS+=+qt5quick2-quick +qt5base-widgets +qt5base-test
+endef
+
+#define Package/qt5quick2-particles
+#  $(call Package/qt5quick2/Default)
+#  TITLE+=particles
+#  DEPENDS+=+qt5quick2-quick
+#endef
+
+define Package/qt5quick2-quick-widgets
+  $(call Package/qt5quick2/Default)
+  TITLE+=QuickWidgets
+  DEPENDS+=+qt5quick2-quick +qt5base-widgets
+endef
+
+define Package/qt5quick2-quick-shapes
+  $(call Package/qt5quick2/Default)
+  TITLE+=QuickShapes
+  DEPENDS+=+qt5quick2-quick
+endef
+
+###
+
+define Package/qt5quick2-qml-module-qtqml-models2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQml models
+  DEPENDS+=+qt5quick2-qml-models
+endef
+
+define Package/qt5quick2-qml-module-qtqml-statemachine
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML StateMachine
+  DEPENDS:=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-qml-module-qtqml-workerscript2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML WorkerScript
+  DEPENDS:=+qt5quick2-qml-worker-script
+endef
+
+###
+
+define Package/qt5quick2-qml-module-qtlabs-animation
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs animation
+  DEPENDS:=+qt5quick2-qml +qt5quick2-quick
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-folderlistmodel
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs folderlistmodel
+  DEPENDS:=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-models
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs qmlmodels
+  DEPENDS+=+qt5quick2-qml-models
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-settings
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs settings
+  DEPENDS:=+qt5quick2-qml
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-sharedimage
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs sharedimage
+  DEPENDS:=+qt5quick2-quick
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtLabs wavefrontmesh
+  DEPENDS:=+qt5quick2-quick
+endef
+
+
+define Package/qt5quick2-qml-module-qttest
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtTest
+  DEPENDS+=+qt5quick2-quick +qt5quick2-quick-test
+endef
+
+define Package/qt5quick2-qml-module-qtquick-layouts
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick Layouts
+  DEPENDS+=+qt5quick2-quick
+endef
+
+#define Package/qt5quick2-qml-module-qtquick-particles2
+#  $(call Package/qt5quick2/Default)
+#  TITLE+=QML particles
+#  DEPENDS+=+qt5quick2-particles
+#endef
+
+define Package/qt5quick2-qml-module-qtquick-localstorage
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick LocalStorage
+  DEPENDS+=+qt5quick2-qml +qt5base-sql
+endef
+
+define Package/qt5quick2-qml-module-qtquick-shapes
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick Shapes
+  DEPENDS+=+qt5quick2-quick-shapes
+endef
+
+define Package/qt5quick2-qml-module-qtquick-window2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick Window.2
+  DEPENDS+=+qt5quick2-quick
+endef
+
+define Package/qt5quick2-qml-module-qtquick2
+  $(call Package/qt5quick2/Default)
+  TITLE+=QML QtQuick.2
+  DEPENDS+=+qt5quick2-quick +qt5quick2-qml-worker-script
+endef
+
+####
+
+define Build/InstallDev
+       $(call Build/Install/HostFiles,$(1))
+       $(call Build/Install/Headers,$(1))
+       $(call Build/Install/Libs,$(1),*)
+endef
+
+define Build/Install/QMLplugin
+       $(INSTALL_DIR) \
+         $(1)/$(QT_INSTALL_QML)/$(2)
+
+       $(CP) \
+         $(PKG_INSTALL_DIR)/$(QT_INSTALL_QML)/$(2)/{plugins.qmltypes,qmldir,$(3).{so,qml,js}*} \
+         $(1)/$(QT_INSTALL_QML)/$(2)/ \
+         || true
+endef
+
+###
+
+define Package/qt5quick2-qml/install
+       $(call Build/Install/Libs,$(1),libQt5Qml)
+
+       $(INSTALL_DIR) \
+         $(1)/$(QT_INSTALL_QML)
+
+       $(CP) \
+         $(PKG_INSTALL_DIR)/$(QT_INSTALL_QML)/builtins.qmltypes \
+         $(1)/$(QT_INSTALL_QML)/
+endef
+
+define Package/qt5quick2-qml-models/install
+       $(call Build/Install/Libs,$(1),libQt5QmlModels)
+endef
+
+define Package/qt5quick2-qml-worker-script/install
+       $(call Build/Install/Libs,$(1),libQt5QmlWorkerScript)
+endef
+
+define Package/qt5quick2-quick/install
+       $(call Build/Install/Libs,$(1),libQt5Quick)
+endef
+
+define Package/qt5quick2-quick-test/install
+       $(call Build/Install/Libs,$(1),libQt5QuickTest)
+endef
+
+#define Package/qt5quick2-particles/install
+#      $(call Build/Install/Libs,$(1),libQt5QuickParticles)
+#endef
+
+define Package/qt5quick2-quick-widgets/install
+       $(call Build/Install/Libs,$(1),libQt5QuickWidgets)
+endef
+
+define Package/qt5quick2-quick-shapes/install
+       $(call Build/Install/Libs,$(1),libQt5QuickShapes)
+endef
+
+define Package/qt5quick2-qml-module-qtqml-models2/install
+       $(call Build/Install/QMLplugin,$(1),QtQml/Models.2,*)
+endef
+
+define Package/qt5quick2-qml-module-qtqml-statemachine/install
+       $(call Build/Install/QMLplugin,$(1),QtQml/StateMachine,*)
+endef
+
+define Package/qt5quick2-qml-module-qtqml-workerscript2/install
+       $(call Build/Install/QMLplugin,$(1),QtQml/WorkerScript.2,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-animation/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/animation/,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-folderlistmodel/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/folderlistmodel,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-models/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/qmlmodels,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-settings/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/settings/,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-sharedimage/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/sharedimage/,*)
+endef
+
+define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh/install
+       $(call Build/Install/QMLplugin,$(1),Qt/labs/wavefrontmesh/,*)
+endef
+
+define Package/qt5quick2-qml-module-qttest/install
+       $(call Build/Install/QMLplugin,$(1),QtTest,*)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/qmltestrunner $(1)/usr/bin/
+endef
+
+define Package/qt5quick2-qml-module-qtquick-layouts/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/Layouts,*)
+endef
+
+#define Package/qt5quick2-qml-module-qtquick-particles2/install
+#      $(call Build/Install/QMLplugin,$(1),QtQuick/Particles.2,*)
+#endef
+
+define Package/qt5quick2-qml-module-qtquick-localstorage/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/LocalStorage,*)
+endef
+
+define Package/qt5quick2-qml-module-qtquick-shapes/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/Shapes,*)
+endef
+
+define Package/qt5quick2-qml-module-qtquick-window2/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick/Window.2,*)
+endef
+
+define Package/qt5quick2-qml-module-qtquick2/install
+       $(call Build/Install/QMLplugin,$(1),QtQuick.2,*)
+endef
+
+
+#$(eval $(call BuildPackage,qt5quick2))
+$(eval $(call BuildPackage,qt5quick2-qml))
+$(eval $(call BuildPackage,qt5quick2-qml-models))
+$(eval $(call BuildPackage,qt5quick2-qml-worker-script))
+$(eval $(call BuildPackage,qt5quick2-quick))
+$(eval $(call BuildPackage,qt5quick2-quick-test))
+#$(eval $(call BuildPackage,qt5quick2-particles))
+$(eval $(call BuildPackage,qt5quick2-quick-widgets))
+$(eval $(call BuildPackage,qt5quick2-quick-shapes))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-models2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-statemachine))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-workerscript2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-models))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-folderlistmodel))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-settings))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-animation))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-sharedimage))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-wavefrontmesh))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-layouts))
+#$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-particles2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-localstorage))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-shapes))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-window2))
+$(eval $(call BuildPackage,qt5quick2-qml-module-qttest))
diff --git a/frameworks/qt5/qt5script/Makefile b/frameworks/qt5/qt5script/Makefile
new file mode 100644 (file)
index 0000000..cbad2c3
--- /dev/null
@@ -0,0 +1,83 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5script
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373
+
+PKG_SYS_NAME:=qtscript-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_BUILD_DEPENDS:=qt5base
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5script/Default
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=Qt5script
+#  DEPENDS:=qt5script +qt5base-core
+  DEPENDS:=+qt5base-core
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+endef
+
+# define Package/qt5script
+#   $(call Package/qt5script/Default)
+#   DEPENDS:=+qt5base
+#   MENU:=1
+# endef
+
+define Package/qt5script-script
+  $(call Package/qt5script/Default)
+  TITLE+=script
+endef
+
+define Package/qt5script-scriptTools
+  $(call Package/qt5script/Default)
+  TITLE+=scriptTools
+  DEPENDS+=+qt5base-gui +qt5base-widgets +qt5script-script
+endef
+
+define Package/qt5script-examples
+  $(call Package/qt5script/Default)
+  TITLE+=examples
+  DEPENDS+=+qt5script-scriptTools @BROKEN
+endef
+
+define Build/InstallDev
+       $(call Build/Install/HostFiles,$(1))
+       $(call Build/Install/Headers,$(1))
+       $(call Build/Install/Libs,$(1),*)
+endef
+
+define Package/qt5script-script/install
+       $(call Build/Install/Libs,$(1),libQt5Script)
+endef
+
+define Package/qt5script-scriptTools/install
+       $(call Build/Install/Libs,$(1),libQt5ScriptTools)
+endef
+
+define Package/qt5script-examples/install
+       $(call Build/Install/Examples,$(1))
+endef
+
+#$(eval $(call BuildPackage,qt5script))
+$(eval $(call BuildPackage,qt5script-script))
+$(eval $(call BuildPackage,qt5script-scriptTools))
+$(eval $(call BuildPackage,qt5script-examples))
diff --git a/frameworks/qt5/qt5tools/Makefile b/frameworks/qt5/qt5tools/Makefile
new file mode 100644 (file)
index 0000000..5b8cce8
--- /dev/null
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5tools
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437
+
+PKG_SYS_NAME:=qttools-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_HOST_ONLY:=1
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+HOST_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+HOST_BUILD_DEPENDS:=qt5base/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5tools
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=qt5tools
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+  DEPENDS:=+qt5base-core
+  BUILDONLY:=1
+endef
+
+define Host/Install
+       $(call Host/Install/Default)
+
+       $(INSTALL_DIR) \
+         $(STAGING_DIR_HOST)/lib \
+         $(STAGING_DIR_HOST)/bin
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/lib/* \
+         $(STAGING_DIR_HOST)/lib/
+
+       $(CP) \
+         $(HOST_INSTALL_DIR)/bin/* \
+         $(STAGING_DIR_HOST)/bin/
+
+       ln -sf $(STAGING_DIR_HOST)/bin/lrelease \
+         $(STAGING_DIR)/host/bin/
+       ln -sf $(STAGING_DIR_HOST)/bin/lupdate \
+         $(STAGING_DIR)/host/bin/
+
+endef
+
+$(eval $(call BuildPackage,qt5tools))
+$(eval $(call HostBuild))
diff --git a/frameworks/qt5/qt5tools/patches/000-enable-kmap2qmap.patch b/frameworks/qt5/qt5tools/patches/000-enable-kmap2qmap.patch
new file mode 100644 (file)
index 0000000..5181985
--- /dev/null
@@ -0,0 +1,14 @@
+diff --git a/src/src.pro b/src/src.pro
+index 5c256ea..3c4012a 100644
+--- a/src/src.pro
++++ b/src/src.pro
+@@ -17,7 +17,8 @@ qtHaveModule(widgets) {
+ }
+ SUBDIRS += linguist \
+-    qtattributionsscanner
++    qtattributionsscanner \
++    kmap2qmap
+ qtConfig(library) {
+     !android|android_app: SUBDIRS += qtplugininfo
diff --git a/frameworks/qt5/qt5tools/patches/001-add-further-keys.patch b/frameworks/qt5/qt5tools/patches/001-add-further-keys.patch
new file mode 100644 (file)
index 0000000..64446fb
--- /dev/null
@@ -0,0 +1,25 @@
+diff -ruN qttools-opensource-src-5.8.0.orig/src/kmap2qmap/main.cpp qttools-opensource-src-5.8.0/src/kmap2qmap/main.cpp
+--- qttools-opensource-src-5.8.0.orig/src/kmap2qmap/main.cpp   2017-01-02 07:50:13.000000000 +0100
++++ qttools-opensource-src-5.8.0/src/kmap2qmap/main.cpp        2017-02-21 03:31:59.598892309 +0100
+@@ -270,6 +270,8 @@
+     { "Pause",         Qt::Key_Pause },
+     { "VolumeDown",    Qt::Key_VolumeDown },
+     { "VolumeUp",      Qt::Key_VolumeUp },
++    { "VolumeMute",    Qt::Key_VolumeMute },
++    { "MicMute",       Qt::Key_MicMute },
+     { "MediaTogglePlayPause", Qt::Key_MediaTogglePlayPause },
+     { "MediaPlay",     Qt::Key_MediaPlay },
+     { "MediaPause",    Qt::Key_MediaPause },
+@@ -286,6 +288,12 @@
+     { "ToggleCallHangup", Qt::Key_ToggleCallHangup },
+     { "VoiceDial"       , Qt::Key_VoiceDial },
+     { "LastNumberRedial", Qt::Key_LastNumberRedial },
++    { "Phone",            Qt::Key_Phone },
++    { "HomePage",         Qt::Key_HomePage },
++    { "Menu",             Qt::Key_Menu },
++    { "Back",             Qt::Key_Back },
++    { "LaunchMail",       Qt::Key_LaunchMail },
++    { "LaunchMedia",      Qt::Key_LaunchMedia },
+     { "KP_0",        Qt::Key_0 | Qt::KeypadModifier },
+     { "KP_1",        Qt::Key_1 | Qt::KeypadModifier },
diff --git a/frameworks/qt5/qt5translations/Makefile b/frameworks/qt5/qt5translations/Makefile
new file mode 100644 (file)
index 0000000..c0e9eba
--- /dev/null
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2020 OpenWrt
+# Author: Mirko Vogt <[email protected]>
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=qt5translations
+PKG_VERSION:=5.15.0
+PKG_RELEASE:=1
+PKG_HASH:=45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe
+
+PKG_SYS_NAME:=qttranslations-everywhere-src-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
+PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+
+PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+PKG_BUILD_DEPENDS:=qt5tools/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+-include $(STAGING_DIR)/host/mk/qmake.mk
+
+define Package/qt5translations
+  SECTION:=video-frameworks
+  CATEGORY:=Video
+  SUBMENU:=Frameworks and Toolkits
+  TITLE:=qt5translations
+  URL:=http://qt.io
+  MAINTAINER:=Mirko Vogt <[email protected]>
+endef
+
+define Package/qt5translations/install
+       $(call Build/Install/Translations,$(1),*)
+endef
+
+$(eval $(call BuildPackage,qt5translations))
diff --git a/frameworks/qt5base/Makefile b/frameworks/qt5base/Makefile
deleted file mode 100644 (file)
index a4f7b31..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt.org
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-# TODO / known bugs:
-# - plugins don't work when sstrip is used for stripping
-# - no X11/wayland/xcb/kms support so far - primary target is linuxfb
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5base
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5
-
-PKG_SYS_NAME:=qtbase-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-HOST_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-PKG_BUILD_FLAGS:=no-mips16
-# Yes, the host build depends on the target build. This is not a mistake!
-# The target build provides the (target specific) qmake.mk file which
-# is also used for host builds.
-# Host projects depend on qt5base/host which however don't build
-# if qt5base didn't install the qmake.mk file before.
-# Benefit of the target build providing qmake.mk instead of the host build
-# is that the host build really only needs to be built, if there're targets
-# which actually depend on it. At the time of this writing, only qt5tools
-# makes use of the host build.
-HOST_BUILD_DEPENDS:=qt5base
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-include $(INCLUDE_DIR)/nls.mk
-include ./files/qmake.mk
-
-PKG_CONFIG_DEPENDS:= \
-       CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \
-       CONFIG_PACKAGE_qt5base-network \
-       CONFIG_PACKAGE_qt5base-gui \
-       CONFIG_PACKAGE_qt5base-gl \
-       CONFIG_PACKAGE_qt5base-widgets \
-       CONFIG_PACKAGE_qt5base-examples \
-       CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \
-       CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \
-       CONFIG_PACKAGE_qt5base-plugin-input-libinput \
-#      CONFIG_PACKAGE_qt5base-plugin-imageformats-png \
-#      CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \
-#      CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \
-
-# Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does
-# not work, because of QT''s internal elf parser, see
-# https://bugreports.qt.io/browse/QTBUG-52567
-# Use the code from the gcc package to use strip instaed.
-ifneq ($(CONFIG_USE_SSTRIP),)
-  STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
-  RSTRIP:= \
-    export CROSS="$(TARGET_CROSS)" \
-               $(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
-               $(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
-    NM="$(TARGET_CROSS)nm" \
-    STRIP="$(STRIP)" \
-    STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
-    $(SCRIPT_DIR)/rstrip.sh
-endif
-
-define Package/qt5base/Default
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=Qt5base
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-endef
-
-# define Package/qt5base
-#   $(call Package/qt5base/Default)
-#   DEPENDS:=
-#   MENU:=1
-# endef
-
-define Package/qt5base-concurrent
-  $(call Package/qt5base/Default)
-  TITLE+=concurrent
-  DEPENDS+=+qt5base-core
-endef
-
-define Package/qt5base-gl
-  $(call Package/qt5base/Default)
-  TITLE+=gl
-  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets @BROKEN
-endef
-
-define Package/qt5base-core
-  $(call Package/qt5base/Default)
-  TITLE+=core
-  DEPENDS+=+libpthread +zlib +libzstd +libpcre2-16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) +PACKAGE_icu:icu #FIXME: do not include ICONV_DEPENDS if ICU is selected (though, that's only an issue when using GNU iconv)
-endef
-
-define Package/qt5base-gui
-  $(call Package/qt5base/Default)
-  TITLE+=gui
-  DEPENDS+=+qt5base-core +libpng +fontconfig +libfreetype
-endef
-
-define Package/qt5base-network
-  $(call Package/qt5base/Default)
-  TITLE+=network
-  DEPENDS+=+qt5base-core +libopenssl
-endef
-
-# seems to be only present as static lib
-# define Package/qt5base-paltformSupport
-#   $(call Package/qt5base/Default)
-#   DEPENDS+=
-# endef
-
-define Package/qt5base-printSupport
-  $(call Package/qt5base/Default)
-  TITLE+=print support
-  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets
-endef
-
-define Package/qt5base-sql
-  $(call Package/qt5base/Default)
-  TITLE+=sql
-  DEPENDS+=+qt5base-core
-endef
-
-define Package/qt5base-test
-  $(call Package/qt5base/Default)
-  TITLE+=test
-  DEPENDS+=+qt5base-core
-endef
-
-define Package/qt5base-widgets
-  $(call Package/qt5base/Default)
-  TITLE+=widgets
-  DEPENDS+=+qt5base-core +qt5base-gui
-endef
-
-define Package/qt5base-xml
-  $(call Package/qt5base/Default)
-  TITLE+=xml
-  DEPENDS+=+qt5base-core
-endef
-
-#### plugins
-
-####### bearer
-
-define Package/qt5base-plugin-bearer-generic
-  $(call Package/qt5base/Default)
-TITLE+=bearer (plugin)
-  DEPENDS+=+qt5base-core +qt5base-network
-endef
-
-####### generic / input
-
-define Package/qt5base-plugin-input-libinput
-  $(call Package/qt5base/Default)
-  TITLE+=libinput (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libinput
-endef
-
-define Package/qt5base-plugin-input-evdevkeyboard
-  $(call Package/qt5base/Default)
-  TITLE+=evdev keyboard (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-define Package/qt5base-plugin-input-evdevmouse
-  $(call Package/qt5base/Default)
-  TITLE+=evdev mouse (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-define Package/qt5base-plugin-input-evdevtablet
-  $(call Package/qt5base/Default)
-  TITLE+=evdev tablet (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-define Package/qt5base-plugin-input-evdevtouch
-  $(call Package/qt5base/Default)
-  TITLE+=evdev touch (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-####### imageformats
-
-#define Package/qt5base-plugin-imageformats-gif
-#  $(call Package/qt5base/Default)
-#TITLE+=imageformat gif (plugin)
-#  DEPENDS+=+qt5base-core +qt5base-gui
-#endef
-
-define Package/qt5base-plugin-imageformats-ico
-  $(call Package/qt5base/Default)
-  TITLE+=imageformat ico (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui
-endef
-
-define Package/qt5base-plugin-imageformats-jpeg
-  $(call Package/qt5base/Default)
-  TITLE+=imageformat jpeg (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libjpeg
-endef
-
-#define Package/qt5base-plugin-imageformats-png
-#  $(call Package/qt5base/Default)
-#  TITLE+=imageformat png (plugin)
-#  DEPENDS+=+qt5base-core +qt5base-gui +libpng
-#endef
-
-####### platforms
-
-#define Package/qt5base-plugin-platforms-eglfs
-#  $(call Package/qt5base/Default)
-#  TITLE+=platform eglfs (plugin)
-#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
-#endef
-
-#define Package/qt5base-plugin-platforms-minimalegl
-#  $(call Package/qt5base/Default)
-#  TITLE+=platform minimalegl (plugin)
-#  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
-#endef
-
-define Package/qt5base-plugin-platforms-linuxfb
-  $(call Package/qt5base/Default)
-  TITLE+=platform linuxfb (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-define Package/qt5base-plugin-platforms-minimal
-  $(call Package/qt5base/Default)
-  TITLE+=platform minimal (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
-endef
-
-define Package/qt5base-plugin-platforms-offscreen
-  $(call Package/qt5base/Default)
-  TITLE+=platform offscreen (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
-endef
-
-define Package/qt5base-plugin-platforms-vnc
-  $(call Package/qt5base/Default)
-  TITLE+=platform vnc (plugin)
-  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-network +libfreetype +fontconfig +libudev +PACKAGE_qt5base-plugin-input-libinput:libinput
-endef
-
-
-
-###### sql
-
-#define Package/qt5base-plugin-sqldrivers-sqlite
-#  $(call Package/qt5base/Default)
-#  TITLE+=sqldriver sqlite (plugin)
-#  DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3
-#endef
-
-define Package/qt5base-examples
-  $(call Package/qt5base/Default)
-  TITLE+=examples
-  DEPENDS+=\
-               +qt5base-core \
-               +qt5base-gui \
-               +qt5base-widgets \
-               +qt5base-network \
-               +qt5base-sql \
-               +qt5base-xml \
-               +qt5base-printSupport \
-               +qt5base-concurrent \
-               +qt5base-gl
-endef
-
-define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(CP) \
-               ./files/mkspecs/linux-openwrt-g++ \
-               $(PKG_BUILD_DIR)/mkspecs/
-endef
-
-# TARGET_CFLAGS += \
-#        -I$(STAGING_DIR)/usr/include/freetype2 \
-#        -I$(STAGING_DIR)/usr/include/libdrm
-
-define Build/Configure
-       # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
-       # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
-       # hence we use the TARGET_* nomenclature.
-       # 
-       # NOTES:
-       #  - icu support currently depends on selection of icu package which is not ideal, since unpredictable.
-       #  - icu support overrides iconv support
-       ( cd $(PKG_BUILD_DIR) ; \
-               TARGET_CROSS="$(TARGET_CROSS)" \
-               TARGET_CFLAGS="$(TARGET_CFLAGS)" \
-               TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(TARGET_CXXFLAGS)" \
-               TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
-               PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
-               ./configure \
-                       --prefix=$(QT_INSTALL_PREFIX) \
-                       --extprefix=$(QT_EXTPREFIX) \
-                       --hostprefix=$(QT_HOST_PREFIX) \
-                       --gcc-sysroot=no \
-                       --bindir=$(QT_INSTALL_BINS) \
-                       --headerdir=$(QT_INSTALL_HEADERS) \
-                       --libdir=$(QT_INSTALL_LIBS) \
-                       --archdatadir=$(QT_INSTALL_ARCHDATA) \
-                       --plugindir=$(QT_INSTALL_PLUGINS) \
-                       --libexecdir=$(QT_INSTALL_LIBEXECS) \
-                       --importdir=$(QT_INSTALL_IMPORTS) \
-                       --qmldir=$(QT_INSTALL_QML) \
-                       --datadir=$(QT_INSTALL_DATA) \
-                       --docdir=$(QT_INSTALL_DOCS) \
-                       --translationdir=$(QT_INSTALL_TRANSLATIONS) \
-                       --sysconfdir=$(QT_INSTALL_CONFIGURATION) \
-                       --examplesdir=$(QT_INSTALL_EXAMPLES) \
-                       --testsdir=$(QT_INSTALL_TESTS) \
-                       --hostbindir=$(QT_HOST_BINS) \
-                       --hostlibdir=$(QT_HOST_LIBS) \
-                       --hostdatadir=$(QT_HOST_DATA) \
-                       --verbose=yes \
-                       --opensource \
-                       --confirm-license \
-                       --release=yes \
-                       --optimized-tools=no \
-                       --optimize-size=no \
-                       --strip=no \
-                       --shared=yes \
-                       --framework=no \
-                       --xplatform=linux-openwrt-g++ \
-                       --reduce-exports=no \
-                       --reduce-relocations=no \
-                       --pch=no \
-                       --ltcg=no \
-                       --use-gold-linker=no \
-                       --warnings-are-errors=no \
-                       --pkg-config=yes \
-                       --compile-examples=$(if $(CONFIG_PACKAGE_qt5base-examples),yes,no) \
-                       $(if $(CONFIG_PACKAGE_qt5base-examples),,--nomake=examples) \
-                       --gui=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
-                       --widgets=$(if $(CONFIG_PACKAGE_qt5base-widgets),yes,no) \
-                       --dbus=no \
-                       --accessibility=yes \
-                       --doubleconversion=system \
-                       --glib=no \
-                       --eventfd=no \
-                       --inotify=no \
-                       --iconv=$(if $(CONFIG_BUILD_NLS),$(if $(CONFIG_LIBC_USE_GLIBC)$(CONFIG_LIBC_USE_MUSL),posix)$(if $(CONFIG_LIBC_USE_UCLIBC),gnu),no) \
-                       --icu=$(if $(CONFIG_PACKAGE_icu),yes,no) \
-                       --pcre=system \
-                       --zlib=system \
-                       --journald=no \
-                       --syslog=no \
-                       --ssl=$(if $(CONFIG_PACKAGE_qt5base-network),yes,no) \
-                       --openssl-linked$(if $(CONFIG_PACKAGE_qt5base-network),,=no) \
-                       --libproxy=no \
-                       --system-proxies=yes \
-                       --cups=no \
-                       --fontconfig=yes \
-                       --freetype=system \
-                       --harfbuzz=no \
-                       --gtk=no \
-                       --opengl=no \
-                       --opengles3=no \
-                       --egl=no \
-                       --xcb-xlib=no \
-                       --qpa=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),linuxfb,) \
-                       --directfb=no \
-                       --eglfs=no \
-                       --gbm=no \
-                       --linuxfb=$(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),yes,no) \
-                       --xcb=no \
-                       \
-                       --libudev=yes \
-                       --evdev=yes \
-                       --libinput=$(if $(CONFIG_PACKAGE_qt5base-plugin-input-libinput),yes,no) \
-                       --mtdev=no \
-                       --tslib=no \
-                       --bundled-xcb-xinput=no \
-                       --xkbcommon=no \
-                       --gif=$(if $(CONFIG_PACKAGE_qt5base-gui),yes,no) \
-                       --ico=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),yes,no) \
-                       --libjpeg=$(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),system,no) \
-                       --libpng=system \
-                       --sql-db2=no \
-                       --sql-ibase=no \
-                       --sql-mysql=no \
-                       --sql-oci=no \
-                       --sql-odbc=no \
-                       --sql-psql=no \
-                       --sql-sqlite=no \
-                       --sql-sqlite2=no \
-                       --sql-tds=no \
-                       --sqlite=no \
-       )
-endef
-
-
-define Host/Configure
-       # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements.
-       # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.),
-       # hence we use the TARGET_* nomenclature.
-       ( cd $(HOST_BUILD_DIR) ; \
-               TARGET_CFLAGS="$(HOST_CFLAGS)" \
-               TARGET_CXXFLAGS="$(HOST_CFLAGS) $(HOST_CXXFLAGS)" \
-               TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
-               ./configure \
-                       --prefix=$(STAGING_DIR_HOST) \
-                       --hostprefix=$(STAGING_DIR_HOST) \
-                       --hostdatadir=$(STAGING_DIR_HOST)/share \
-                       --datadir=$(STAGING_DIR_HOST)/share \
-                       --archdatadir=$(STAGING_DIR_HOST)/lib \
-                       --gcc-sysroot=no \
-                       --verbose=yes \
-                       --opensource \
-                       --confirm-license \
-                       --release=yes \
-                       --optimized-tools=no \
-                       --optimize-size=no \
-                       --strip=no \
-                       --shared=yes \
-                       --framework=no \
-                       --reduce-exports=no \
-                       --reduce-relocations=no \
-                       --pch=no \
-                       --ltcg=no \
-                       --use-gold-linker=no \
-                       --warnings-are-errors=no \
-                       --pkg-config=yes \
-                       --compile-examples=no \
-                       --make=libs \
-                       --nomake=tools \
-                       --nomake=examples \
-                       --gui=yes \
-                       --widgets=no \
-                       --dbus=no \
-                       --accessibility=no \
-                       --doubleconversion=qt \
-                       --glib=no \
-                       --eventfd=no \
-                       --inotify=no \
-                       --iconv=no \
-                       --icu=no \
-                       --pcre=qt \
-                       --zlib=qt \
-                       --journald=no \
-                       --syslog=no \
-                       --ssl=no \
-                       --libproxy=no \
-                       --system-proxies=no \
-                       --cups=no \
-                       --fontconfig=no \
-                       --freetype=qt \
-                       --harfbuzz=no \
-                       --gtk=no \
-                       --opengl=no \
-                       --opengles3=no \
-                       --egl=no \
-                       --xcb-xlib=no \
-                       --directfb=no \
-                       --eglfs=no \
-                       --gbm=no \
-                       --linuxfb=no \
-                       --xcb=no \
-                       \
-                       --libudev=no \
-                       --evdev=no \
-                       --libinput=no \
-                       --mtdev=no \
-                       --tslib=no \
-                       --bundled-xcb-xinput=no \
-                       --xkbcommon=no \
-                       --gif=no \
-                       --ico=no \
-                       --libjpeg=no \
-                       --libpng=no \
-                       --sql-db2=no \
-                       --sql-ibase=no \
-                       --sql-mysql=no \
-                       --sql-oci=no \
-                       --sql-odbc=no \
-                       --sql-psql=no \
-                       --sql-sqlite=no \
-                       --sql-sqlite2=no \
-                       --sql-tds=no \
-                       --sqlite=no \
-       )
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) \
-               $(STAGING_DIR)/host/mk
-
-       $(CP) \
-               ./files/qmake.mk \
-               $(STAGING_DIR)/host/mk/
-
-       $(call Build/Install/HostFiles,$(1))
-       $(call Build/Install/Headers,$(1))
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Host/Install
-       $(call Host/Install/Default)
-
-       $(INSTALL_DIR) \
-         $(STAGING_DIR_HOST)/bin \
-         $(STAGING_DIR_HOST)/lib \
-         $(STAGING_DIR_HOST)/include \
-         $(STAGING_DIR_HOST)/share
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/lib/* \
-         $(STAGING_DIR_HOST)/lib/
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/include/* \
-         $(STAGING_DIR_HOST)/include/
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/share/* \
-         $(STAGING_DIR_HOST)/share/
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/bin/* \
-         $(STAGING_DIR_HOST)/bin/
-endef
-
-define Package/qt5base-concurrent/install
-       $(call Build/Install/Libs,$(1),libQt5Concurrent)
-endef
-
-define Package/qt5base-core/install
-       $(call Build/Install/Libs,$(1),libQt5Core)
-endef
-
-define Package/qt5base-gl/install
-       $(call Build/Install/Libs,$(1),libQt5OpenGL)
-endef
-
-define Package/qt5base-gui/install
-       $(call Build/Install/Libs,$(1),libQt5Gui)
-endef
-
-define Package/qt5base-network/install
-       $(call Build/Install/Libs,$(1),libQt5Network)
-endef
-
-define Package/qt5base-printSupport/install
-       $(call Build/Install/Libs,$(1),libQt5PrintSupport)
-endef
-
-define Package/qt5base-sql/install
-       $(call Build/Install/Libs,$(1),libQt5Sql)
-endef
-
-define Package/qt5base-test/install
-       $(call Build/Install/Libs,$(1),libQt5Test)
-endef
-
-define Package/qt5base-widgets/install
-       $(call Build/Install/Libs,$(1),libQt5Widgets)
-endef
-
-define Package/qt5base-xml/install
-       $(call Build/Install/Libs,$(1),libQt5Xml)
-endef
-
-define Package/qt5base-plugin-bearer-generic/install
-       $(call Build/Install/Plugins,$(1),bearer,libqgenericbearer)
-endef
-
-define Package/qt5base-plugin-input-libinput/install
-       $(call Build/Install/Plugins,$(1),generic,libqlibinputplugin)
-endef
-
-define Package/qt5base-plugin-input-evdevkeyboard/install
-       $(call Build/Install/Plugins,$(1),generic,libqevdevkeyboardplugin)
-endef
-
-define Package/qt5base-plugin-input-evdevmouse/install
-       $(call Build/Install/Plugins,$(1),generic,libqevdevmouseplugin)
-endef
-
-define Package/qt5base-plugin-input-evdevtablet/install
-       $(call Build/Install/Plugins,$(1),generic,libqevdevtabletplugin)
-endef
-
-define Package/qt5base-plugin-input-evdevtouch/install
-       $(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin)
-endef
-
-#define Package/qt5base-plugin-imageformats-gif/install
-#      $(call Build/Install/Plugins,$(1),imageformats,libqgif)
-#endef
-
-define Package/qt5base-plugin-imageformats-ico/install
-       $(call Build/Install/Plugins,$(1),imageformats,libqico)
-endef
-
-define Package/qt5base-plugin-imageformats-jpeg/install
-       $(call Build/Install/Plugins,$(1),imageformats,libqjpeg)
-endef
-
-#define Package/qt5base-plugin-imageformats-png/install
-#      $(call Build/Install/Plugins,$(1),imageformats,libqpng)
-#endef
-
-define Package/qt5base-plugin-platforms-linuxfb/install
-       $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
-endef
-
-define Package/qt5base-plugin-platforms-vnc/install
-       $(call Build/Install/Plugins,$(1),platforms,libqvnc)
-endef
-
-#define Package/qt5base-plugin-platforms-eglfs/install
-#      $(call Build/Install/Plugins,$(1),platforms,libqeglfs)
-#endef
-
-#define Package/qt5base-plugin-platforms-minimalegl/install
-#      $(call Build/Install/Plugins,$(1),platforms,libqminimalegl)
-#endef
-
-define Package/qt5base-plugin-platforms-minimal/install
-       $(call Build/Install/Plugins,$(1),platforms,libqminimal)
-endef
-
-define Package/qt5base-plugin-platforms-offscreen/install
-       $(call Build/Install/Plugins,$(1),platforms,libqoffscreen)
-endef
-
-#define Package/qt5base-plugin-sqldrivers-sqlite/install
-#      $(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite)
-#endef
-
-define Package/qt5base-examples/install
-       $(call Build/Install/Examples,$(1))
-endef
-
-# $(eval $(call BuildPackage,qt5base))
-$(eval $(call BuildPackage,qt5base-concurrent))
-$(eval $(call BuildPackage,qt5base-core))
-$(eval $(call BuildPackage,qt5base-gui))
-$(eval $(call BuildPackage,qt5base-gl))
-$(eval $(call BuildPackage,qt5base-network))
-$(eval $(call BuildPackage,qt5base-printSupport))
-$(eval $(call BuildPackage,qt5base-sql))
-$(eval $(call BuildPackage,qt5base-test))
-$(eval $(call BuildPackage,qt5base-widgets))
-$(eval $(call BuildPackage,qt5base-xml))
-$(eval $(call BuildPackage,qt5base-plugin-bearer-generic))
-$(eval $(call BuildPackage,qt5base-plugin-input-libinput))
-$(eval $(call BuildPackage,qt5base-plugin-input-evdevkeyboard))
-$(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse))
-$(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet))
-$(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch))
-#$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif))
-$(eval $(call BuildPackage,qt5base-plugin-imageformats-ico))
-$(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg))
-#$(eval $(call BuildPackage,qt5base-plugin-imageformats-png))
-$(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb))
-#$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs))
-#$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl))
-$(eval $(call BuildPackage,qt5base-plugin-platforms-minimal))
-$(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen))
-$(eval $(call BuildPackage,qt5base-plugin-platforms-vnc))
-#$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite))
-$(eval $(call BuildPackage,qt5base-examples))
-$(eval $(call HostBuild))
diff --git a/frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf b/frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qmake.conf
deleted file mode 100644 (file)
index eff0868..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# qmake configuration for building with linux-openwrt-g++
-#
-
-MAKEFILE_GENERATOR      = UNIX
-CONFIG                 += incremental
-QMAKE_INCREMENTAL_STYLE = sublib
-
-include(../common/linux.conf)
-include(../common/gcc-base-unix.conf)
-include(../common/g++-unix.conf)
-
-
-# modifications to gcc-base.conf (included by gcc-base-unix.conf)
-QMAKE_CFLAGS           += $$(TARGET_CFLAGS)
-QMAKE_CXXFLAGS         += $$(TARGET_CXXFLAGS)
-QMAKE_LFLAGS           += $$(TARGET_LDFLAGS)
-
-# modifications to g++.conf
-QMAKE_CC                = $$(TARGET_CROSS)gcc
-QMAKE_CXX               = $$(TARGET_CROSS)g++
-
-QMAKE_LINK_C            = $$QMAKE_CC
-QMAKE_LINK_C_SHLIB      = $$QMAKE_CC
-QMAKE_LINK              = $$QMAKE_CXX
-QMAKE_LINK_SHLIB        = $$QMAKE_CXX
-
-
-# modifications to linux.conf
-QMAKE_AR                = $$(TARGET_CROSS)ar cqs
-QMAKE_RANLIB            = $$(TARGET_CROSS)ranlib # QMAKE_RANLIB is set to NULL in linux.conf. Why? Not needed anymore? Set it anyway, just in case...
-QMAKE_OBJCOPY           = $$(TARGET_CROSS)objcopy
-QMAKE_NM                = $$(TARGET_CROSS)nm # whole qt5 project doesn't use $QMAKE_NM - wonder why it's defined in linux.conf at all. However better set it to ours than keep it being set to the host's version, just in case...
-QMAKE_STRIP             = # not used, since -no-strip is passed. Let's OpenWrt do the stripping
-
-
-load(qt_config)
diff --git a/frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h b/frameworks/qt5base/files/mkspecs/linux-openwrt-g++/qplatformdefs.h
deleted file mode 100644 (file)
index 9cfed53..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the qmake spec of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL21$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 or version 3 as published by the Free
-** Software Foundation and appearing in the file LICENSE.LGPLv21 and
-** LICENSE.LGPLv3 included in the packaging of this file. Please review the
-** following information to ensure the GNU Lesser General Public License
-** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "../linux-g++/qplatformdefs.h"
diff --git a/frameworks/qt5base/files/qmake.mk b/frameworks/qt5base/files/qmake.mk
deleted file mode 100644 (file)
index 34903b7..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt.org
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-# qmake - oh my.. qmake is supposed to generate Makefiles suitable for cross-compiling
-# however fails itself hard being used in a cross compiling toolchain in any sane way.
-# 
-# There are the QT_INSTALL_* variables - which get set via Qt's configure options,
-# containing paths which become hardcoded into the qmake binary.
-# Those paths are supposed to refer to the target system, however are also used for
-# include and linker paths.
-# Hence, setting QT_INSTALL_PREFIX=/usr would result in -I/usr/include,
-# -L/usr/lib, etc., referencing the host headers and libraries.
-# The QT_SYSROOT variable looks most promising for distinguishing between
-# host and target specific paths, however it fails hard and is totally undocumented.
-# The extprefix variable tries to cover the situation, however actually just prepends
-# its path to the QT_INSTALL_* variables - basically cosmetics.
-# 
-# The QT_HOST_* variables are used for host tools, libraries, mkspecs and its data.
-# 
-# As a consequence we set QT_INSTALL_* and QT_HOST_* to absolute paths, which
-# inevitably results in the following issues:
-# 
-#  - 'make install' results in paths like:
-#    /tmp/install_root/home/cross/openwrt/staging_dir/target-*/usr.
-#    This is workarounded by overriding the PKG_INSTALL_DIR, so the Makefiles don't
-#    have to care about that.
-#  - Once compiled, qmake's location and its requirements (mkspecs, etc.) are fixed,
-#    since its absolute paths were hardcoded. No moving around of the toolchain.
-#  - Those variables might be used for target binaries for some weird reason, so
-#    paths to the host staging_dir would make it to the target, logically leading to
-#    errors.
-#  - Paths might make it into target binaries, thus referencing non-existing
-#    objects on the target platform. Tihs behaviour wasn't observed so far, however 
-#    one might use the QT_INSTALL_* variables for some weird reason during runtime.
-
-# for target builds (STAGING_DIR)
-QT_EXTPREFIX:=$(STAGING_DIR)/$(CONFIGURE_PREFIX)
-QT_SYSROOT:=
-QT_INSTALL_CONFIGURATION:=/etc/qt5
-QT_INSTALL_PREFIX:=$(CONFIGURE_PREFIX)
-QT_INSTALL_LIBS:=$(QT_INSTALL_PREFIX)/lib
-QT_INSTALL_DATA:=$(QT_INSTALL_PREFIX)/share/qt5
-QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include
-QT_INSTALL_BINS:=$(QT_INSTALL_PREFIX)/bin
-QT_INSTALL_DOCS:=$(QT_INSTALL_DATA)/doc
-QT_INSTALL_TRANSLATIONS:=$(QT_INSTALL_DATA)/translations
-QT_INSTALL_ARCHDATA:=$(QT_INSTALL_LIBS)/qt5
-QT_INSTALL_LIBEXECS:=$(QT_INSTALL_ARCHDATA)
-QT_INSTALL_TESTS:=$(QT_INSTALL_ARCHDATA)/tests
-QT_INSTALL_PLUGINS:=$(QT_INSTALL_ARCHDATA)/plugins
-QT_INSTALL_IMPORTS:=$(QT_INSTALL_ARCHDATA)/imports
-QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml
-QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples
-QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES)
-# for host builds defined in target project files (STAGING_DIR)/host
-QT_HOST_EXTPREFIX:=$(STAGING_DIR)/host
-QT_HOST_PREFIX:=$(QT_HOST_EXTPREFIX)
-QT_HOST_DATA:=$(QT_HOST_PREFIX)/share
-QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin
-QT_HOST_LIBS:=$(QT_HOST_PREFIX)/lib
-
-QMAKE_SPEC:=linux-g++
-QMAKE_XSPEC:=linux-openwrt-g++
-
-PKG_INSTALL_DIR_ROOT:=$(PKG_INSTALL_DIR)
-PKG_INSTALL_DIR:=$(PKG_INSTALL_DIR_ROOT)/$(STAGING_DIR)
-
-# for target independant host builds (STAGING_DIR_HOST)
-HOST_INSTALL_DIR_ROOT:=$(HOST_INSTALL_DIR)
-HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR_HOST)
-#HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR)
-
-QMAKE_TARGET=$(STAGING_DIR)/host/bin/qmake
-QMAKE_HOST=$(STAGING_DIR_HOST)/bin/qmake
-
-define Build/Configure/Default
-       TARGET_CROSS="$(TARGET_CROSS)" \
-       TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-       TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
-       TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
-       $(QMAKE_TARGET) \
-               -o $(PKG_BUILD_DIR)/$(MAKE_PATH)/Makefile \
-               $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
-endef
-
-define Host/Configure/Default
-       $(QMAKE_HOST) \
-               -o $(HOST_BUILD_DIR)/$(MAKE_PATH)/Makefile \
-               $(HOST_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1).pro,)
-endef
-
-# We need to pass all qmake (TARGET_*) related variables to $(MAKE) as well, as
-# (generated) Makefiles may invoke qmake once again for creating further Makefiles.
-# Actually we'd also like to pass all other vars (defined in $MAKE_VARS and
-# $MAKE_FLAGS) to also make ordinary non-qmake generated Makefiles calling tool-
-# chain executables like $CC/$CXX/$AR.. work, however this would interfere with
-# qmake generated Makefiles, since they expect variables being set differently.
-# For example qmake generated Makefiles expect $AR to also contain ar's arguments,
-# while ordinary Makefiles don't.
-# Until we find a way to disginguish both kinds of Makefiles, we will neglect
-# ordinary Makefiles calling toolchain executables, however as they might take
-# $CFLAGS/CXXFLAGS into account (e.g. flags as -D*), we pass at least those
-# hoping to not interfere / break something.
-# Mixing qmake generated and ordinary Makfiles - both calling toolchain execut-
-# ables - is probably a very rare case anyway.
-define Build/Compile/Default
-       +TARGET_CROSS="$(TARGET_CROSS)" \
-       TARGET_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-       TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
-       TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
-       CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-       CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS)" \
-               $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
-                       $(1)
-endef
-
-define Host/Compile/Default
-               $(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
-                       $(1)
-endef
-
-define Build/Install/Default
-       INSTALL_ROOT="$(PKG_INSTALL_DIR_ROOT)" \
-               $(MAKE) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \
-                       $(1) install
-endef
-
-define Host/Install/Default
-       INSTALL_ROOT="$(HOST_INSTALL_DIR_ROOT)" \
-               $(MAKE) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
-                       $(1) install
-endef
-
-define Build/Install/HostFiles
-       $(INSTALL_DIR) \
-               $(1)/host
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/host/* \
-               $(1)/host/
-endef
-
-define Build/Install/Headers
-       $(INSTALL_DIR) \
-               $(1)/$(QT_INSTALL_HEADERS)
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/$(QT_INSTALL_HEADERS)/* \
-               $(1)/$(QT_INSTALL_HEADERS)/
-endef
-
-define Build/Install/Libs
-       $(INSTALL_DIR) \
-               $(1)/$(QT_INSTALL_LIBS)
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/$(QT_INSTALL_LIBS)/$(2).so* \
-               $(1)/$(QT_INSTALL_LIBS)/
-endef
-
-define Build/Install/Translations
-       $(INSTALL_DIR) \
-               $(1)/$(QT_INSTALL_TRANSLATIONS)
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/$(QT_INSTALL_TRANSLATIONS)/$(2).qm \
-               $(1)/$(QT_INSTALL_TRANSLATIONS)/
-endef
-
-define Build/Install/Plugins
-       $(INSTALL_DIR) \
-               $(1)/$(QT_INSTALL_PLUGINS)/$(2)
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/$(QT_INSTALL_PLUGINS)/$(2)/$(3).so* \
-               $(1)/$(QT_INSTALL_PLUGINS)/$(2)/
-endef
-
-define Build/Install/Examples
-       $(INSTALL_DIR) \
-               $(1)/$(QT_INSTALL_EXAMPLES)
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \
-               $(1)/$(QT_INSTALL_EXAMPLES)/
-
-       $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \
-               -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \
-               $(XARGS) $(RM) -vf
-endef
diff --git a/frameworks/qt5base/patches/000-fix-gnuiconv-test.patch b/frameworks/qt5base/patches/000-fix-gnuiconv-test.patch
deleted file mode 100644 (file)
index 2ec7794..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From e9097ab24832e42df6e16093e5c3b775dbcf2367 Mon Sep 17 00:00:00 2001
-From: Mirko Vogt <[email protected]>
-Date: Fri, 5 Jun 2020 12:46:36 +0000
-Subject: [PATCH] GNU iconv() - at least in OpenWrt - behaves like POSIX
- iconv()
-
-GNU iconv() had the terrible idea of introducing a build variant for its
-iconv() function, where the second argument can either be a `char **` or
-a `const char **` depending on a macro set under whatever certain
-circumstances at build time, resulting in different function signatures.
-
-Despite those two possible variants, the project only mentions the
-non-const one in their manual page.
-
-Since this didn't seem to be enough trouble for its users, they seem to
-have changed the default variant from `const char **` to `char **` at
-some point, while leaving the manual page as it is, now stating the
-non-default, hence in most cases probably wrong, signature.
-
-Qt assumes GNU iconv() has the nowadays non-default function signature
-(`const char **`), and distiguishes that way from the POSIX one.
-Another issue with Qt and GNU iconv(): While we can easily make the test
-work for GNU iconv with its default iconv()-signature, Qt assumes that if
-the GNU-iconv succeeds, the present version of iconv is POSIX- 
-incompatible - which however isn't true in our case.
-
-However we also can't just use the POSIX iconv test, as the Qt test for
-POSIX iconv fails on GNU iconv for another reason: GNU iconv requires
-explicit linker flags (`-liconv`), which the Qt test for POSIX iconv
-however implicitly drops when the target system is linux.
-
-This was extensively discussed in a Qt bug report:
-https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84708
-
-The only good thing seems to be that Qt's configure script is also buggy 
-and counter-intuitive, resulting in 'gnu' not being accepted as iconv
-variant when using the default single-dash format for specifying
-configure options:
-https://bugreports.qt.io/projects/QTBUG/issues/QTBUG-84687
-So most likely there's nobody using Qt with GNU iconv anyway.
-
-This patch is what I came up with being the smallest changeset.
-May it work.
----
- src/corelib/codecs/qiconvcodec.cpp | 5 -----
- src/corelib/configure.json         | 2 +-
- 2 files changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/src/corelib/codecs/qiconvcodec.cpp b/src/corelib/codecs/qiconvcodec.cpp
-index 9c397279..8d43e6c8 100644
---- a/src/corelib/codecs/qiconvcodec.cpp
-+++ b/src/corelib/codecs/qiconvcodec.cpp
-@@ -180,12 +180,7 @@ QString QIconvCodec::convertToUnicode(const char* chars, int len, ConverterState
-     IconvState *state = *pstate;
-     size_t inBytesLeft = len;
-     // best case assumption, each byte is converted into one UTF-16 character, plus 2 bytes for the BOM
--#if !QT_CONFIG(posix_libiconv)
--    // GNU doesn't disagree with POSIX :/
--    const char *inBytes = chars;
--#else
-     char *inBytes = const_cast<char *>(chars);
--#endif
-     QByteArray in;
-     if (remainingCount) {
-diff --git a/src/corelib/configure.json b/src/corelib/configure.json
-index c5e04232..32237bc4 100644
---- a/src/corelib/configure.json
-+++ b/src/corelib/configure.json
-@@ -72,7 +72,7 @@
-             "test": {
-                 "main": [
-                     "iconv_t x = iconv_open(\"\", \"\");",
--                    "const char *inp;",
-+                    "char *inp;",
-                     "char *outp;",
-                     "size_t inbytes, outbytes;",
-                     "iconv(x, &inp, &inbytes, &outp, &outbytes);",
--- 
-2.20.1
-
diff --git a/frameworks/qt5graphicaleffects/Makefile b/frameworks/qt5graphicaleffects/Makefile
deleted file mode 100644 (file)
index cf04a29..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5graphicaleffects
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda
-
-PKG_SYS_NAME:=qtgraphicaleffects-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=qt5base
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5graphicaleffects
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=qt5graphicaleffects
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-  DEPENDS:=+qt5quick2-quick @BROKEN # depends on GL support, but currently we only support software rendering
-endef
-
-define Build/InstallDev
-endef
-
-define Package/qt5graphicaleffects/install
-       $(INSTALL_DIR) \
-         $(1)/usr/lib/qt5/qml/QtGraphicalEffects
-
-       $(CP) \
-         $(PKG_INSTALL_DIR)/usr/lib/qt5/qml/QtGraphicalEffects/* \
-         $(1)/usr/lib/qt5/qml/QtGraphicalEffects/
-endef
-
-$(eval $(call BuildPackage,qt5graphicaleffects))
diff --git a/frameworks/qt5quick2-2d-sw-renderer-GLstubs/Makefile b/frameworks/qt5quick2-2d-sw-renderer-GLstubs/Makefile
deleted file mode 100644 (file)
index e0fea17..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt.org
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-### This package shares the same code as `qt5quick2-GLstubs`.
-### However unfortunately we can't handle both packages within
-### one Makefile, as it would create a circular dependency:
-###  `qt5base` depends on `qt5quick2-GLstubs`, but
-### `qt5quick2-2d-sw-renderer` depends on `qt5quick2` which
-### depends on `qt5base`.
-### `qt5quick2-2d-sw-renderer` and `qt5quick2-GLstubs` sharing
-### the same Makefile results in `qt5base` depending on `qt5quick2`
-### which is meh.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5quick2-2d-sw-renderer-GLstubs
-PKG_VERSION:=5.7.0
-PKG_RELEASE:=1
-PKG_MD5SUM:=41bfcb5ab6d7a820687c4208beeb7057
-
-PKG_SYS_NAME:=qtdeclarative-render2d-opensource-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/archive/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/qtdeclarative-render2d-opensource-src-$(PKG_VERSION)-GLstubs/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/qt5quick2-2d-sw-renderer-GLstubs
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=Dummy GL stubs
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-endef
-
-TARGET_CFLAGS += \
-  -I../3rdparty/include
-
-define Build/Configure
-endef
-
-define Build/Compile
-       ( cd $(PKG_BUILD_DIR)/tools/opengldummy/src ; \
-         $(TARGET_CC) $(TARGET_CFLAGS) -fPIC -shared -o libEGL.so egl.cpp && \
-         $(TARGET_CC) $(TARGET_CFLAGS) -fPIC -shared -o libGLESv2.so gles2.cpp \
-       )
-endef
-
-define Build/InstallDev
-       $(INSTALL_DIR) \
-         $(1)/usr/include \
-         $(1)/usr/lib
-
-       $(CP) \
-         $(PKG_BUILD_DIR)/tools/opengldummy/3rdparty/include/* \
-         $(1)/usr/include/
-
-       $(INSTALL_DATA) \
-         $(PKG_BUILD_DIR)/tools/opengldummy/src/lib*.so* \
-         $(1)/usr/lib/
-endef
-
-
-define Package/qt5quick2-2d-sw-renderer-GLstubs/install
-       $(INSTALL_DIR) \
-         $(1)/usr/lib
-
-       $(INSTALL_DATA) \
-         $(PKG_BUILD_DIR)/tools/opengldummy/src/lib*.so* \
-         $(1)/usr/lib/
-endef
-
-$(eval $(call BuildPackage,qt5quick2-2d-sw-renderer-GLstubs))
diff --git a/frameworks/qt5quick2-controls2/Makefile b/frameworks/qt5quick2-controls2/Makefile
deleted file mode 100644 (file)
index 8fcdcd1..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5quick2-controls2
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f
-
-PKG_SYS_NAME:=qtquickcontrols2-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5quick2-controls2
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=qt5quick2-controls2
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-  DEPENDS:=+qt5quick2-quick
-endef
-
-define Build/InstallDev
-       $(call Build/Install/HostFiles,$(1))
-       $(call Build/Install/Headers,$(1))
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Package/qt5quick2-controls2/install
-       $(call Build/Install/Libs,$(1),libQt5QuickTemplates2)
-       $(call Build/Install/Libs,$(1),libQt5QuickControls2)
-
-       $(INSTALL_DIR) \
-         $(1)/usr/lib/qt5/qml/QtQuick
-
-       $(CP) \
-         $(PKG_INSTALL_DIR)/usr/lib/qt5/qml/QtQuick/* \
-         $(1)/usr/lib/qt5/qml/QtQuick/
-endef
-
-define Package/qt5quick2-templates2/install
-       $(call Build/Install/Libs,$(1),libQt5QuickTemplates2)
-endef
-
-$(eval $(call BuildPackage,qt5quick2-controls2))
diff --git a/frameworks/qt5quick2/Makefile b/frameworks/qt5quick2/Makefile
deleted file mode 100644 (file)
index 4d0cd28..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5quick2
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699
-
-PKG_SYS_NAME:=qtdeclarative-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=qt5base
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5quick2/Default
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=Qt5Quick2
-#  DEPENDS+=qt5quick2
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-endef
-
-# define Package/qt5quick2
-#   $(call Package/qt5quick2/Default)
-#   DEPENDS:=
-#   MENU:=1
-# endef
-
-define Package/qt5quick2-qml
-  $(call Package/qt5quick2/Default)
-  TITLE+=Qml
-  DEPENDS+=+qt5base-network
-endef
-
-define Package/qt5quick2-qml-models
-  $(call Package/qt5quick2/Default)
-  TITLE+=QmlModels
-  DEPENDS+=+qt5quick2-qml
-endef
-
-define Package/qt5quick2-qml-worker-script
-  $(call Package/qt5quick2/Default)
-  TITLE+=QmlWorkerScript
-  DEPENDS+=+qt5quick2-qml
-endef
-
-define Package/qt5quick2-quick
-  $(call Package/qt5quick2/Default)
-  TITLE+=Quick
-  DEPENDS+=+qt5base-gui +qt5quick2-qml-models
-endef
-
-define Package/qt5quick2-quick-test
-  $(call Package/qt5quick2/Default)
-  TITLE+=QuickTest
-  DEPENDS+=+qt5quick2-quick +qt5base-widgets +qt5base-test
-endef
-
-#define Package/qt5quick2-particles
-#  $(call Package/qt5quick2/Default)
-#  TITLE+=particles
-#  DEPENDS+=+qt5quick2-quick
-#endef
-
-define Package/qt5quick2-quick-widgets
-  $(call Package/qt5quick2/Default)
-  TITLE+=QuickWidgets
-  DEPENDS+=+qt5quick2-quick +qt5base-widgets
-endef
-
-define Package/qt5quick2-quick-shapes
-  $(call Package/qt5quick2/Default)
-  TITLE+=QuickShapes
-  DEPENDS+=+qt5quick2-quick
-endef
-
-###
-
-define Package/qt5quick2-qml-module-qtqml-models2
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQml models
-  DEPENDS+=+qt5quick2-qml-models
-endef
-
-define Package/qt5quick2-qml-module-qtqml-statemachine
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML StateMachine
-  DEPENDS:=+qt5quick2-qml
-endef
-
-define Package/qt5quick2-qml-module-qtqml-workerscript2
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML WorkerScript
-  DEPENDS:=+qt5quick2-qml-worker-script
-endef
-
-###
-
-define Package/qt5quick2-qml-module-qtlabs-animation
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs animation
-  DEPENDS:=+qt5quick2-qml +qt5quick2-quick
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-folderlistmodel
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs folderlistmodel
-  DEPENDS:=+qt5quick2-qml
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-models
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs qmlmodels
-  DEPENDS+=+qt5quick2-qml-models
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-settings
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs settings
-  DEPENDS:=+qt5quick2-qml
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-sharedimage
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs sharedimage
-  DEPENDS:=+qt5quick2-quick
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtLabs wavefrontmesh
-  DEPENDS:=+qt5quick2-quick
-endef
-
-
-define Package/qt5quick2-qml-module-qttest
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtTest
-  DEPENDS+=+qt5quick2-quick +qt5quick2-quick-test
-endef
-
-define Package/qt5quick2-qml-module-qtquick-layouts
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQuick Layouts
-  DEPENDS+=+qt5quick2-quick
-endef
-
-#define Package/qt5quick2-qml-module-qtquick-particles2
-#  $(call Package/qt5quick2/Default)
-#  TITLE+=QML particles
-#  DEPENDS+=+qt5quick2-particles
-#endef
-
-define Package/qt5quick2-qml-module-qtquick-localstorage
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQuick LocalStorage
-  DEPENDS+=+qt5quick2-qml +qt5base-sql
-endef
-
-define Package/qt5quick2-qml-module-qtquick-shapes
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQuick Shapes
-  DEPENDS+=+qt5quick2-quick-shapes
-endef
-
-define Package/qt5quick2-qml-module-qtquick-window2
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQuick Window.2
-  DEPENDS+=+qt5quick2-quick
-endef
-
-define Package/qt5quick2-qml-module-qtquick2
-  $(call Package/qt5quick2/Default)
-  TITLE+=QML QtQuick.2
-  DEPENDS+=+qt5quick2-quick +qt5quick2-qml-worker-script
-endef
-
-####
-
-define Build/InstallDev
-       $(call Build/Install/HostFiles,$(1))
-       $(call Build/Install/Headers,$(1))
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Build/Install/QMLplugin
-       $(INSTALL_DIR) \
-         $(1)/$(QT_INSTALL_QML)/$(2)
-
-       $(CP) \
-         $(PKG_INSTALL_DIR)/$(QT_INSTALL_QML)/$(2)/{plugins.qmltypes,qmldir,$(3).{so,qml,js}*} \
-         $(1)/$(QT_INSTALL_QML)/$(2)/ \
-         || true
-endef
-
-###
-
-define Package/qt5quick2-qml/install
-       $(call Build/Install/Libs,$(1),libQt5Qml)
-
-       $(INSTALL_DIR) \
-         $(1)/$(QT_INSTALL_QML)
-
-       $(CP) \
-         $(PKG_INSTALL_DIR)/$(QT_INSTALL_QML)/builtins.qmltypes \
-         $(1)/$(QT_INSTALL_QML)/
-endef
-
-define Package/qt5quick2-qml-models/install
-       $(call Build/Install/Libs,$(1),libQt5QmlModels)
-endef
-
-define Package/qt5quick2-qml-worker-script/install
-       $(call Build/Install/Libs,$(1),libQt5QmlWorkerScript)
-endef
-
-define Package/qt5quick2-quick/install
-       $(call Build/Install/Libs,$(1),libQt5Quick)
-endef
-
-define Package/qt5quick2-quick-test/install
-       $(call Build/Install/Libs,$(1),libQt5QuickTest)
-endef
-
-#define Package/qt5quick2-particles/install
-#      $(call Build/Install/Libs,$(1),libQt5QuickParticles)
-#endef
-
-define Package/qt5quick2-quick-widgets/install
-       $(call Build/Install/Libs,$(1),libQt5QuickWidgets)
-endef
-
-define Package/qt5quick2-quick-shapes/install
-       $(call Build/Install/Libs,$(1),libQt5QuickShapes)
-endef
-
-define Package/qt5quick2-qml-module-qtqml-models2/install
-       $(call Build/Install/QMLplugin,$(1),QtQml/Models.2,*)
-endef
-
-define Package/qt5quick2-qml-module-qtqml-statemachine/install
-       $(call Build/Install/QMLplugin,$(1),QtQml/StateMachine,*)
-endef
-
-define Package/qt5quick2-qml-module-qtqml-workerscript2/install
-       $(call Build/Install/QMLplugin,$(1),QtQml/WorkerScript.2,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-animation/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/animation/,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-folderlistmodel/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/folderlistmodel,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-models/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/qmlmodels,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-settings/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/settings/,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-sharedimage/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/sharedimage/,*)
-endef
-
-define Package/qt5quick2-qml-module-qtlabs-wavefrontmesh/install
-       $(call Build/Install/QMLplugin,$(1),Qt/labs/wavefrontmesh/,*)
-endef
-
-define Package/qt5quick2-qml-module-qttest/install
-       $(call Build/Install/QMLplugin,$(1),QtTest,*)
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/qmltestrunner $(1)/usr/bin/
-endef
-
-define Package/qt5quick2-qml-module-qtquick-layouts/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/Layouts,*)
-endef
-
-#define Package/qt5quick2-qml-module-qtquick-particles2/install
-#      $(call Build/Install/QMLplugin,$(1),QtQuick/Particles.2,*)
-#endef
-
-define Package/qt5quick2-qml-module-qtquick-localstorage/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/LocalStorage,*)
-endef
-
-define Package/qt5quick2-qml-module-qtquick-shapes/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/Shapes,*)
-endef
-
-define Package/qt5quick2-qml-module-qtquick-window2/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick/Window.2,*)
-endef
-
-define Package/qt5quick2-qml-module-qtquick2/install
-       $(call Build/Install/QMLplugin,$(1),QtQuick.2,*)
-endef
-
-
-#$(eval $(call BuildPackage,qt5quick2))
-$(eval $(call BuildPackage,qt5quick2-qml))
-$(eval $(call BuildPackage,qt5quick2-qml-models))
-$(eval $(call BuildPackage,qt5quick2-qml-worker-script))
-$(eval $(call BuildPackage,qt5quick2-quick))
-$(eval $(call BuildPackage,qt5quick2-quick-test))
-#$(eval $(call BuildPackage,qt5quick2-particles))
-$(eval $(call BuildPackage,qt5quick2-quick-widgets))
-$(eval $(call BuildPackage,qt5quick2-quick-shapes))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-models2))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-statemachine))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtqml-workerscript2))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-models))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-folderlistmodel))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-settings))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-animation))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-sharedimage))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtlabs-wavefrontmesh))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick2))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-layouts))
-#$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-particles2))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-localstorage))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-shapes))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qtquick-window2))
-$(eval $(call BuildPackage,qt5quick2-qml-module-qttest))
diff --git a/frameworks/qt5script/Makefile b/frameworks/qt5script/Makefile
deleted file mode 100644 (file)
index cbad2c3..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5script
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373
-
-PKG_SYS_NAME:=qtscript-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_BUILD_DEPENDS:=qt5base
-PKG_INSTALL:=1
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5script/Default
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=Qt5script
-#  DEPENDS:=qt5script +qt5base-core
-  DEPENDS:=+qt5base-core
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-endef
-
-# define Package/qt5script
-#   $(call Package/qt5script/Default)
-#   DEPENDS:=+qt5base
-#   MENU:=1
-# endef
-
-define Package/qt5script-script
-  $(call Package/qt5script/Default)
-  TITLE+=script
-endef
-
-define Package/qt5script-scriptTools
-  $(call Package/qt5script/Default)
-  TITLE+=scriptTools
-  DEPENDS+=+qt5base-gui +qt5base-widgets +qt5script-script
-endef
-
-define Package/qt5script-examples
-  $(call Package/qt5script/Default)
-  TITLE+=examples
-  DEPENDS+=+qt5script-scriptTools @BROKEN
-endef
-
-define Build/InstallDev
-       $(call Build/Install/HostFiles,$(1))
-       $(call Build/Install/Headers,$(1))
-       $(call Build/Install/Libs,$(1),*)
-endef
-
-define Package/qt5script-script/install
-       $(call Build/Install/Libs,$(1),libQt5Script)
-endef
-
-define Package/qt5script-scriptTools/install
-       $(call Build/Install/Libs,$(1),libQt5ScriptTools)
-endef
-
-define Package/qt5script-examples/install
-       $(call Build/Install/Examples,$(1))
-endef
-
-#$(eval $(call BuildPackage,qt5script))
-$(eval $(call BuildPackage,qt5script-script))
-$(eval $(call BuildPackage,qt5script-scriptTools))
-$(eval $(call BuildPackage,qt5script-examples))
diff --git a/frameworks/qt5tools/Makefile b/frameworks/qt5tools/Makefile
deleted file mode 100644 (file)
index 5b8cce8..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5tools
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437
-
-PKG_SYS_NAME:=qttools-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_HOST_ONLY:=1
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-HOST_BUILD_DIR=$(BUILD_DIR)/host/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-HOST_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-HOST_BUILD_DEPENDS:=qt5base/host
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5tools
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=qt5tools
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-  DEPENDS:=+qt5base-core
-  BUILDONLY:=1
-endef
-
-define Host/Install
-       $(call Host/Install/Default)
-
-       $(INSTALL_DIR) \
-         $(STAGING_DIR_HOST)/lib \
-         $(STAGING_DIR_HOST)/bin
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/lib/* \
-         $(STAGING_DIR_HOST)/lib/
-
-       $(CP) \
-         $(HOST_INSTALL_DIR)/bin/* \
-         $(STAGING_DIR_HOST)/bin/
-
-       ln -sf $(STAGING_DIR_HOST)/bin/lrelease \
-         $(STAGING_DIR)/host/bin/
-       ln -sf $(STAGING_DIR_HOST)/bin/lupdate \
-         $(STAGING_DIR)/host/bin/
-
-endef
-
-$(eval $(call BuildPackage,qt5tools))
-$(eval $(call HostBuild))
diff --git a/frameworks/qt5tools/patches/000-enable-kmap2qmap.patch b/frameworks/qt5tools/patches/000-enable-kmap2qmap.patch
deleted file mode 100644 (file)
index 5181985..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/src.pro b/src/src.pro
-index 5c256ea..3c4012a 100644
---- a/src/src.pro
-+++ b/src/src.pro
-@@ -17,7 +17,8 @@ qtHaveModule(widgets) {
- }
- SUBDIRS += linguist \
--    qtattributionsscanner
-+    qtattributionsscanner \
-+    kmap2qmap
- qtConfig(library) {
-     !android|android_app: SUBDIRS += qtplugininfo
diff --git a/frameworks/qt5tools/patches/001-add-further-keys.patch b/frameworks/qt5tools/patches/001-add-further-keys.patch
deleted file mode 100644 (file)
index 64446fb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -ruN qttools-opensource-src-5.8.0.orig/src/kmap2qmap/main.cpp qttools-opensource-src-5.8.0/src/kmap2qmap/main.cpp
---- qttools-opensource-src-5.8.0.orig/src/kmap2qmap/main.cpp   2017-01-02 07:50:13.000000000 +0100
-+++ qttools-opensource-src-5.8.0/src/kmap2qmap/main.cpp        2017-02-21 03:31:59.598892309 +0100
-@@ -270,6 +270,8 @@
-     { "Pause",         Qt::Key_Pause },
-     { "VolumeDown",    Qt::Key_VolumeDown },
-     { "VolumeUp",      Qt::Key_VolumeUp },
-+    { "VolumeMute",    Qt::Key_VolumeMute },
-+    { "MicMute",       Qt::Key_MicMute },
-     { "MediaTogglePlayPause", Qt::Key_MediaTogglePlayPause },
-     { "MediaPlay",     Qt::Key_MediaPlay },
-     { "MediaPause",    Qt::Key_MediaPause },
-@@ -286,6 +288,12 @@
-     { "ToggleCallHangup", Qt::Key_ToggleCallHangup },
-     { "VoiceDial"       , Qt::Key_VoiceDial },
-     { "LastNumberRedial", Qt::Key_LastNumberRedial },
-+    { "Phone",            Qt::Key_Phone },
-+    { "HomePage",         Qt::Key_HomePage },
-+    { "Menu",             Qt::Key_Menu },
-+    { "Back",             Qt::Key_Back },
-+    { "LaunchMail",       Qt::Key_LaunchMail },
-+    { "LaunchMedia",      Qt::Key_LaunchMedia },
-     { "KP_0",        Qt::Key_0 | Qt::KeypadModifier },
-     { "KP_1",        Qt::Key_1 | Qt::KeypadModifier },
diff --git a/frameworks/qt5translations/Makefile b/frameworks/qt5translations/Makefile
deleted file mode 100644 (file)
index c0e9eba..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#
-# Copyright (C) 2020 OpenWrt
-# Author: Mirko Vogt <[email protected]>
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=qt5translations
-PKG_VERSION:=5.15.0
-PKG_RELEASE:=1
-PKG_HASH:=45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe
-
-PKG_SYS_NAME:=qttranslations-everywhere-src-$(PKG_VERSION)
-PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=https://download.qt.io/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
-
-PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
-PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
-PKG_BUILD_DEPENDS:=qt5tools/host
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
--include $(STAGING_DIR)/host/mk/qmake.mk
-
-define Package/qt5translations
-  SECTION:=video-frameworks
-  CATEGORY:=Video
-  SUBMENU:=Frameworks and Toolkits
-  TITLE:=qt5translations
-  URL:=http://qt.io
-  MAINTAINER:=Mirko Vogt <[email protected]>
-endef
-
-define Package/qt5translations/install
-       $(call Build/Install/Translations,$(1),*)
-endef
-
-$(eval $(call BuildPackage,qt5translations))